Submission #1049319

#TimeUsernameProblemLanguageResultExecution timeMemory
1049319sofija6XOR (IZhO12_xor)C++14
0 / 100
1 ms2396 KiB
#include <bits/stdc++.h> #define ll long long #define MAXN 250010 using namespace std; ll a[MAXN],pref[MAXN]; map<ll,ll> pos; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n,x,ansi=0,ansk=0; cin >> n >> x; for (ll i=1;i<=n;i++) { cin >> a[i]; pref[i]=pref[i-1]^a[i]; } for (ll i=n;i>=0;i--) { ll val=0; for (ll j=30;j>=0;j--) { if ((1<<j)&x) { if (!((1<<j)&pref[i])) val+=(1<<j); continue; } if (!((1<<j)&pref[i])) val+=(1<<j); if (pos[val]-i>ansk) { ansk=pos[val]-i; ansi=i+1; } else if (pos[val]-i==ansk) ansi=i+1; val^=(1<<j); } if (!pos[pref[i]]) pos[pref[i]]=i; for (ll j=0;j<=30;j++) { if ((1<<j)&pref[i]) pref[i]-=(1<<j); if (!pos[pref[i]]) pos[pref[i]]=i; } } cout << ansi << " " << ansk; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...