Submission #646261

# Submission time Handle Problem Language Result Execution time Memory
646261 2022-09-29T10:42:32 Z inksamurai Dojave (COCI17_dojave) C++17
28 / 140
4000 ms 40392 KB
#include <bits/stdc++.h>
using namespace std;
#define int ll
#define rep(i,n) for(int i=0;i<n;i++)
#define per(i,n) for(int i=n-1;i>=0;i--)
#define rng(i,c,n) for(int i=c;i<n;i++)
#define pb push_back
#define sz(a) (int)a.size()
#define vec(...) vector<__VA_ARGS__>
#define _3dSgv16 ios::sync_with_stdio(0),cin.tie(0)
typedef long long ll;
using vi=vector<int>;
void print(){cout<<'\n';}
template<class h,class...t>
void print(const h&v,const t&...u){cout<<v<<' ',print(u...);}
// e

signed main(){
_3dSgv16;
	int ln;
	cin>>ln;
	const int n=1<<ln;
	vi a(n);
	rep(i,n){
		cin>>a[i];
	}
	vi ps;
	rep(i,n){
		ps.pb((!sz(ps)?0:ps.back())^a[i]);
	}
	vi ids(n);
	rep(i,n){
		ids[a[i]]=i;
	}
	vi rbe(n);
	rep(i,n){
		rbe[i]=ids[(n-1)^a[i]];
	}
	int ans=n*(n+1)/2;
	rep(i,n){
		per(j,i){
			if((i-j+1)%4==0 and ps[i]==(!j?0:ps[j-1])){
				bool pok=1;
				for(int k=j;k<=i;k++){
					pok=pok and (rbe[k]>=j and rbe[k]<=i);
				}
				ans-=pok;
			}	
		}
	}
	print(ans);
	// const int m=4;
	// rep(d,m){
	// 	map<int,vi> mp;
	// 	for(int i=d;i<n;i+=m){
	// 		int now=ps[i];
	// 		if(sz(mp)){
	// 			int l=0,r=sz(mp[now])-1;
	// 			int c=-1;
	// 			while(l<=r){
	// 				int m=(l+r)/2;
	// 				bool pok=1;
	// 				{
	// 					for(int j=mp[now][m];j<=i;j++){
	// 						if(rbe[j]<mp[now][m] or rbe[j]>i){
	// 							pok=0;
	// 						}
	// 					}
	// 				}
	// 				if(pok){
	// 					c=m,l=m+1;
	// 				}else{
	// 					r=m-1;
	// 				}
	// 			}
	// 			if(c!=-1 and c+1<sz(mp[now])){
	// 				ans-=(i-mp[now][c+1])/4;
	// 			}
	// 		}
	// 		mp[now].pb(i);
	// 	}
	// }
}
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 324 KB Output is correct
2 Correct 1 ms 316 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 341 ms 480 KB Output is correct
2 Correct 10 ms 468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4058 ms 596 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 92 ms 980 KB Output is correct
2 Execution timed out 4085 ms 980 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1509 ms 2900 KB Output is correct
2 Execution timed out 4078 ms 2888 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1519 ms 2900 KB Output is correct
2 Execution timed out 4073 ms 5312 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4075 ms 10296 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4038 ms 40392 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4078 ms 40384 KB Time limit exceeded
2 Halted 0 ms 0 KB -