Submission #89092

#TimeUsernameProblemLanguageResultExecution timeMemory
89092igziDojave (COCI17_dojave)C++17
140 / 140
2082 ms82872 KiB
#include <bits/stdc++.h> #define maxN 1100005 using namespace std; long long n,m,i,a[maxN],res; unsigned long long x,b[maxN],s; map <unsigned long long,int> p[4]; int main() { std::ios_base::sync_with_stdio(false); srand(time(NULL)); cin>>m; if(m==1) {cout<<2<<endl; return 0;} n=pow(2,m); for(i=0;i<n;i++){ cin>>a[i]; x=rand(); x=(x<<32) | rand(); b[a[i]]=b[n-1-a[i]]=x; } s=0; for(i=0;i<=n;i++){ if(p[i%4].find(s)!=p[i%4].end()) res+=p[i%4][s]; if(p[i%4].find(s)==p[i%4].end()){ p[i%4][s]=1; } else p[i%4][s]++; s=s xor b[a[i]]; } cout<<(n*(n+1))/2-res<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...