Submission #646267

# Submission time Handle Problem Language Result Execution time Memory
646267 2022-09-29T11:07:58 Z inksamurai Dojave (COCI17_dojave) C++17
28 / 140
195 ms 44388 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;
	const int m=4;
	rep(d,m){
		priority_queue<int> pq;
		int r=-1;
		for(int i=d;i<n;i+=m){
			if(i>=r){
				ans-=sz(pq);
			}
			// cut on i-th position
			pq.push(i);
			for(int j=i+1;j<=min(n-1,i+m);j++){
				r=max(r,rbe[j]);
				while(sz(pq) and rbe[j]<=pq.top()){
					pq.pop();
				}
			}
		}
	}
	// rep(i,n){
	// 	cout<<rbe[i]<<" ";
	// }
	// print();
	int ma=-1;
	rep(i,n){
		ma=max(ma,rbe[i]);
		if(i%4==3){
			if(ma<=i){
				// cout<<i<<" ";
				ans-=1;
			}
		}	
	}
	print(ans);
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 596 KB Output is correct
2 Incorrect 2 ms 552 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 980 KB Output is correct
2 Correct 3 ms 980 KB Output is correct
3 Correct 2 ms 972 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 2900 KB Output is correct
2 Incorrect 11 ms 2900 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 9 ms 2888 KB Output is correct
2 Incorrect 22 ms 5584 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 36 ms 10308 KB Output is correct
2 Incorrect 60 ms 10936 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 128 ms 35472 KB Output is correct
2 Correct 131 ms 40416 KB Output is correct
3 Correct 133 ms 44388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 137 ms 35088 KB Output is correct
2 Incorrect 195 ms 43304 KB Output isn't correct
3 Halted 0 ms 0 KB -