Submission #2163209


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
using Int = long long;
//INSERT ABOVE HERE
signed main(){
  Int n;
  cin>>n;
  vector<Int> a(n);
  for(Int i=0;i<n;i++) cin>>a[i];
  
  Int k=0,px=0,py=0;
  for(Int m=20;m>=0;m--){
    vector<Int> b(n);
    for(Int i=0;i<n;i++) b[i]=a[i]>>m;
    Int nk=(k<<1)|1;
    bool ok=0;
    map<Int, Int> pos;
    Int x=0,idx=n+1,idy=n+1;
    for(Int i=0;i<n;i++){      
      if(!pos.count(x)) pos[x]=i;
      x^=b[i];
      if(pos.count(nk^x)){
	ok=1;
	if(pos[nk^x]<idx||(pos[nk^x]==idx&&i<idy))
	  tie(idx,idy)=make_pair(pos[nk^x],i);
      }
    }
    //cout<<nk<<":"<<ok<<endl;
    k<<=1;
    if(ok){
      k++;
      px=idx;
      py=idy;
    }
  }
  cout<<k<<" "<<px+1<<" "<<py+1<<endl;
  return 0;
}

Submission Info

Submission Time
Task F - Maximum Segment XOR
User beet
Language C++14 (GCC 5.4.1)
Score 100
Code Size 782 Byte
Status AC
Exec Time 664 ms
Memory 7796 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 31
Set Name Test Cases
All 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 4, 5, 6, 7, 8, 9
Case Name Status Exec Time Memory
1 AC 1 ms 256 KB
10 AC 4 ms 256 KB
11 AC 3 ms 256 KB
12 AC 2 ms 256 KB
13 AC 27 ms 640 KB
14 AC 35 ms 896 KB
15 AC 42 ms 956 KB
16 AC 270 ms 4360 KB
17 AC 172 ms 2660 KB
18 AC 664 ms 7796 KB
19 AC 1 ms 256 KB
2 AC 1 ms 256 KB
20 AC 1 ms 256 KB
21 AC 1 ms 256 KB
22 AC 2 ms 256 KB
23 AC 1 ms 256 KB
24 AC 2 ms 256 KB
25 AC 8 ms 512 KB
26 AC 4 ms 384 KB
27 AC 14 ms 768 KB
28 AC 254 ms 5300 KB
29 AC 398 ms 5724 KB
3 AC 1 ms 256 KB
30 AC 168 ms 3724 KB
31 AC 361 ms 7348 KB
4 AC 1 ms 256 KB
5 AC 1 ms 256 KB
6 AC 1 ms 256 KB
7 AC 1 ms 256 KB
8 AC 1 ms 256 KB
9 AC 3 ms 256 KB