#include #include #include //#include using namespace std; vector>graph[2000]; int dp[2002][4100]; int n; int dinamicko(int i, int prev_number){ if(i==n){ return 0; } if(dp[i][prev_number]!=-1){ return dp[i][prev_number]; } int result = 2e9; for(int j=0; j>n; for(int i=0; i>a; for(int bitmask=0; bitmask<(1<<12); bitmask++){ if(__builtin_popcount(bitmask)== __builtin_popcount(a)){ graph[i].push_back(make_pair(bitmask, (__builtin_popcount(a^bitmask))/2)); } } } memset(dp, -1, sizeof dp); cout<