Submission #134198


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define MP make_pair
#define fs first
#define sd second

const int inf = int(1e9);

struct Node{
    Node* d[2];
    int V;
    Node(){ d[0] = d[1] = 0; V = inf;}
};

int N;
Node * root;

void addNumber(int X, int i){
    Node * C = root;
    C->V = min (C->V, i);
    for (int j = 20; j >= 0; j--){
        int B = ((X >> j) & 1);
        if (C->d[B] == 0)
            C->d[B] = new Node();
        C = C->d[B];
        C->V =min (C->V, i);
    }
}

int main(){
    //freopen("F.inp", "r", stdin);
    scanf("%d", &N);
    int X = 0, L, R, M = -1, A, Y, B;

    root = new Node();
    addNumber(0, 0);

    for (int i = 1; i <= N; i++){
        scanf("%d", &A);
        X ^= A; Y = 0;
        Node * C = root;
        //printf ("i=%d, X=%d\n",i,X);
        for (int j = 20; j >= 0; j--){
            B = !((X >> j) & 1);
            if (C->d[B] == 0) B = !B;
            Y += (B << j) ^ (X & (1 << j));
            C = C->d[B];
        }
        if (Y > M || (Y == M && C->V + 1 < L)) M = Y, L = C->V + 1, R = i;
        addNumber(X, i);
    }
    printf("%d %d %d\n", M, L, R);
    return 0;
}

Submission Info

Submission Time
Task F - Maximum Segment XOR
User nsinfo
Language C++ (GCC 4.4.7)
Score 100
Code Size 1198 Byte
Status AC
Exec Time 166 ms
Memory 14952 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:40: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

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 38 ms 804 KB
10 AC 25 ms 1064 KB
11 AC 23 ms 988 KB
12 AC 24 ms 992 KB
13 AC 29 ms 2400 KB
14 AC 34 ms 2540 KB
15 AC 32 ms 2924 KB
16 AC 79 ms 6892 KB
17 AC 63 ms 6896 KB
18 AC 166 ms 14952 KB
19 AC 23 ms 860 KB
2 AC 22 ms 928 KB
20 AC 22 ms 812 KB
21 AC 25 ms 808 KB
22 AC 24 ms 924 KB
23 AC 23 ms 932 KB
24 AC 23 ms 928 KB
25 AC 25 ms 1176 KB
26 AC 24 ms 1008 KB
27 AC 28 ms 1444 KB
28 AC 96 ms 9456 KB
29 AC 106 ms 10216 KB
3 AC 21 ms 804 KB
30 AC 69 ms 7148 KB
31 AC 139 ms 10716 KB
4 AC 23 ms 864 KB
5 AC 23 ms 780 KB
6 AC 23 ms 928 KB
7 AC 24 ms 932 KB
8 AC 24 ms 928 KB
9 AC 24 ms 1052 KB