Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- using namespace std;
- int main()
- {
- int N, i; //Број на плочки
- int DP[1000][4]; //Матрица за динамичко, каде што DP[X][Y] означува на колку начини се поставаат X+1 плочки
- int result = 0; //така што Y е последната изберена боја, каде што Y =
- //0 за бела боја
- //1 за црвена
- //2 за жолта
- //3 за сина
- scanf("%d",&N);
- //Има само еден начин да се избере една плочка во една боја
- DP[0][0] = DP[0][1] = DP[0][2] = DP[0][3] = 1;
- for(i = 1 ; i < N ; ++i)
- {
- DP[i][0] = DP[i-1][0] + DP[i-1][1] + DP[i-1][2] + DP[i-1][3];//Белата плочка можеме да ја додадеме на било која друга
- DP[i][1] = DP[i-1][0] + DP[i-1][2] + DP[i-1][3];//Останатите плочки ги додаваме само доколку последната додадена не е со иста боја
- DP[i][2] = DP[i-1][0] + DP[i-1][1] + DP[i-1][3];
- DP[i][3] = DP[i-1][0] + DP[i-1][1] + DP[i-1][2];
- }
- //Решението се наоѓа во последната колона, кога се наредени N плочки со било која боја на крај
- result = DP[N-1][0] + DP[N-1][1] + DP[N-1][2] + DP[N-1][3];
- printf("%d",result);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement