Submission #103060


Source Code Expand

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

#define FOR(i, a, n) for(int i = (a); i < (n); i++)
#define REP(i, n) FOR(i, 0, n)
#define RFOR(i, a, n) for(int i = (n) - 1; i >= (a); i--)
#define RREP(i, n) RFOR(i, 0, n)
#define ALL(v) (v).begin(), (v).end()
#define fst first
#define snd second

typedef long long ll;
typedef pair<int, int> pii;

const int MAX_N = 110000;
const int MAX_V = (1 << 21) + 10;
const int MAX_LOG_V = 21;

int n;
ll a[MAX_N], s[MAX_N];
int pos[MAX_V];
bool exist[MAX_V];

void solve(){
  int v = 0;
  int mask = 0;
  RREP(i, MAX_LOG_V){
	memset(exist, false, sizeof(exist));
	mask |= (1 << i);
	REP(j, n + 1){
	  exist[s[j] & mask] = true;
	}
	bool ok = false;
	REP(j, n + 1){
	  if(exist[a[j] ^ (v | (1 << i))]){
		ok = true;
		break;
	  }
	}
	if(ok) v |= (1 << i);
  }

  if(v == 0){
	cout << 0 << ' ' << 1 << ' ' << 1 << endl;
	return;
  }
  
  memset(pos, -1, sizeof(pos));
  REP(i, n + 1){
	if(pos[s[i]] == -1 || pos[s[i]] > i){
	  pos[s[i]] = i;
	}
  }
  pii p = pii(-1, -1);
  REP(i, n + 1){
	int ti = i;
	int tj = pos[v ^ s[i]];
	if(tj == -1) continue;
	if(ti > tj) swap(ti, tj);
	pii q = pii(ti, tj);
	if(p.fst == -1 || p > q){
	  p = q;
	}
  }
  cout << v << ' ' << p.fst + 1 << ' ' << p.snd << endl;
  return;
}

int main(){
  cin >> n;
  REP(i, n){
	cin >> a[i];
	s[i + 1] = s[i] ^ a[i];
  }
  solve();
  return 0;
}

Submission Info

Submission Time
Task F - Maximum Segment XOR
User torimal
Language C++ (GCC 4.4.7)
Score 0
Code Size 1509 Byte
Status WA
Exec Time 114 ms
Memory 12588 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 14
WA × 17
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 42 ms 10924 KB
10 WA 41 ms 11048 KB
11 WA 42 ms 11052 KB
12 WA 41 ms 10928 KB
13 AC 44 ms 11052 KB
14 AC 46 ms 11056 KB
15 AC 47 ms 11052 KB
16 AC 73 ms 11816 KB
17 AC 60 ms 11436 KB
18 AC 102 ms 12588 KB
19 AC 41 ms 10924 KB
2 AC 41 ms 11056 KB
20 WA 42 ms 10920 KB
21 AC 41 ms 11052 KB
22 WA 41 ms 11056 KB
23 WA 41 ms 11052 KB
24 WA 41 ms 10928 KB
25 WA 43 ms 11052 KB
26 WA 41 ms 11048 KB
27 WA 45 ms 11176 KB
28 WA 82 ms 12080 KB
29 WA 87 ms 12196 KB
3 AC 41 ms 10924 KB
30 WA 72 ms 11688 KB
31 WA 114 ms 12584 KB
4 AC 29 ms 2840 KB
5 AC 41 ms 11052 KB
6 WA 43 ms 11032 KB
7 WA 41 ms 11048 KB
8 AC 58 ms 10952 KB
9 WA 42 ms 11060 KB