Submission #336127

#TimeUsernameProblemLanguageResultExecution timeMemory
336127tevdoreBeautiful row (IZhO12_beauty)C++14
0 / 100
3078 ms45648 KiB
#include<bits/stdc++.h> #define ll long long using namespace std; int const N = 1 << 23; int n; ll a[25], dp[N][25]; ll ans; bool check1(int x, int y) { int r1 = 0, r2 = 0; while(x) { r1 += x % 2; x /= 2; } while(y) { r2 += y % 2; y /= 2; } if(r1 == r2) return true; return false; } bool check2(int x, int y) { int r1 = 0, r2 = 0; while(x) { r1 += (x % 3 == 1); x /= 3; } while(y) { r2 += (y % 3 == 1); y /= 3; } if(r1 == r2) return true; return false; } main() { ios::sync_with_stdio(0); cin.tie(); cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; int mask = 1 << n; mask--; for(int i = 1; i <= mask; i++) { for(int j = 0; j < n; j++) { if(i >> j & 1) { int x = i ^ (1 << j); if(!x) { dp[i][j + 1] = 1; continue; } for(int z = 0; z < n; z++) { if((x >> z) & 1) { bool f1 = false, f2 = false; f1 = check1(a[j + 1], a[z + 1]); f2 = check2(a[j + 1], a[z + 1]); if(f1 || f2) dp[i][j + 1] += dp[x][z + 1]; } } } } } for(int j = 0; j < n; j++) ans += dp[mask][j + 1]; cout << ans << "\n"; }

Compilation message (stderr)

beauty.cpp:35:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   35 | main() {
      |      ^
#Verdict Execution timeMemoryGrader output
Fetching results...