Submission #1051115

#TimeUsernameProblemLanguageResultExecution timeMemory
1051115sofija6XOR (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=-1; 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 ((1ll<<j)&x) { if (!((1ll<<j)&pref[i])) val+=(1ll<<j); continue; } if (!((1ll<<j)&pref[i])) val+=(1ll<<j); if (pos[val]-i>ansk) { ansk=pos[val]-i; ansi=i+1; } else if (pos[val]-i==ansk) ansi=i+1; val^=(1ll<<j); } if (pos[val]-i>ansk) { ansk=pos[val]-i; ansi=i+1; } else if (pos[val]-i==ansk) ansi=i+1; if (!pos[pref[i]]) pos[pref[i]]=i; for (ll j=0;j<=30;j++) { if ((1ll<<j)&pref[i]) pref[i]-=(1ll<<j); if (!pos[pref[i]]) pos[pref[i]]=i; } } cout << ansi << " " << ansk; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...