Submission #101977


Source Code Expand

#include <bits/stdc++.h>
#define REP(i,n) for(int i=0; i<(int)(n); ++i)

using namespace std;
typedef long long ll;

const int    INF = 1000000000;
const int    MOD = 1000000007;
const double EPS = 1e-8;

int main(){
    int N;
    while(cin >> N && N){
        vector<int> a(N);
        REP(i, N){
            cin >> a[i];
        }
        int cur = 0;
        int lasts = 1, lastt = 1;
        for(int b = 0; b < 20; b++){
            int B = cur >> (19 - b) | 1;
            //printf("b = %d B = %d\n", b, B);
            vector<int> sum(N + 1);
            for(int i = 0; i < N; i++) sum[i + 1] = sum[i] ^ (a[i] >> (19 - b));
            map<int, int> index;
            bool ok = false;
            for(int i = sum.size() - 1; i >= 0; i--){
                int want = sum[i] ^ B;
                if(index.count(want)){
                    lasts = i + 1;
                    lastt = index[want];
                    ok = true;
                }
                index[sum[i]] = i;
            }
            if(ok){
                cur = B << (19 - b);
            }else{
                cur = (B ^ 1) << (19 - b);
            }
        }
        printf("%d %d %d\n", cur, lasts, lastt);
    }
    return 0;
}

Submission Info

Submission Time
Task F - Maximum Segment XOR
User YellowYell
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1258 Byte
Status AC
Exec Time 899 ms
Memory 5948 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 23 ms 804 KB
10 AC 25 ms 808 KB
11 AC 24 ms 924 KB
12 AC 24 ms 812 KB
13 AC 54 ms 1012 KB
14 AC 64 ms 1196 KB
15 AC 70 ms 1136 KB
16 AC 363 ms 3600 KB
17 AC 243 ms 2388 KB
18 AC 899 ms 5948 KB
19 AC 22 ms 800 KB
2 AC 22 ms 796 KB
20 AC 21 ms 800 KB
21 AC 21 ms 804 KB
22 AC 23 ms 808 KB
23 AC 22 ms 804 KB
24 AC 22 ms 804 KB
25 AC 32 ms 868 KB
26 AC 28 ms 800 KB
27 AC 46 ms 1064 KB
28 AC 483 ms 4272 KB
29 AC 565 ms 4492 KB
3 AC 21 ms 800 KB
30 AC 306 ms 3132 KB
31 AC 624 ms 5680 KB
4 AC 20 ms 800 KB
5 AC 21 ms 800 KB
6 AC 21 ms 804 KB
7 AC 22 ms 928 KB
8 AC 21 ms 928 KB
9 AC 24 ms 744 KB