Submission #1127774


Source Code Expand

#include <cstdio>
#include <cstdint>
#include <algorithm>
#define repeat(i,n) for (int i = 0; (i) < int(n); ++(i))
#define repeat_from(i,m,n) for (int i = (m); (i) < int(n); ++(i))
using namespace std;
const int inf = 1e9+7;
#define N_MAX 100000
int32_t a[N_MAX];
int32_t xor_acc[N_MAX+1];
int main() {
    int n, q; scanf("%d%d", &n, &q);
    repeat (i,n) scanf("%u", &a[i]);
    xor_acc[0] = 0;
    repeat (i,n) xor_acc[i+1] = xor_acc[i] ^ a[i];
    int m = - inf;
    while (q --) {
        int l, r; scanf("%d%d", &l, &r);
        if (m == - inf) {
            -- l;
        } else {
            l = (l + abs(m)) % n;
            r = (r + abs(m)) % n + 1;
        }
        int32_t x = xor_acc[r] ^ xor_acc[l];
        int32_t d = 0x7fffffff;
        m = - inf;
        repeat_from (i, l, r-1) {
            d &= a[i];
            x ^= a[i];
            m = max(m, d - x);
        }
        printf("%d\n", m);
    }
    return 0;
}

Submission Info

Submission Time
Task J - XORAND
User kimiyuki
Language C++14 (Clang 3.8.0)
Score 0
Code Size 936 Byte
Status CE

Compile Error

./Main.cpp:22:22: error: use of undeclared identifier 'abs'
            l = (l + abs(m)) % n;
                     ^
./Main.cpp:23:22: error: use of undeclared identifier 'abs'
            r = (r + abs(m)) % n + 1;
                     ^
2 errors generated.