Submission #103062


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[mask & (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 1520 Byte
Status WA
Exec Time 105 ms
Memory 12584 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 16
WA × 15
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 47 ms 11052 KB
10 AC 46 ms 11036 KB
11 WA 43 ms 11052 KB
12 WA 42 ms 11056 KB
13 AC 47 ms 11048 KB
14 AC 49 ms 11048 KB
15 AC 49 ms 11056 KB
16 AC 76 ms 11824 KB
17 AC 63 ms 11436 KB
18 AC 105 ms 12584 KB
19 AC 42 ms 10924 KB
2 AC 45 ms 11052 KB
20 WA 43 ms 10920 KB
21 AC 48 ms 10924 KB
22 WA 44 ms 11048 KB
23 WA 45 ms 11052 KB
24 WA 45 ms 11048 KB
25 WA 44 ms 11056 KB
26 WA 44 ms 11044 KB
27 WA 50 ms 11172 KB
28 WA 86 ms 12076 KB
29 WA 87 ms 12200 KB
3 AC 44 ms 11044 KB
30 WA 70 ms 11684 KB
31 WA 103 ms 12580 KB
4 AC 26 ms 2856 KB
5 AC 45 ms 10924 KB
6 WA 41 ms 11048 KB
7 WA 43 ms 11044 KB
8 AC 42 ms 11048 KB
9 AC 43 ms 11044 KB