답안 #79895

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
79895 2018-10-17T05:37:57 Z imeimi2000 XOR (IZhO12_xor) C++17
100 / 100
1272 ms 41896 KB
#include <cstdio>
#include <unordered_map>

using namespace std;
typedef long long llong;
typedef pair<int, int> pii;

int n, k;
int ansi, ansk = 0;
int a[250001];
int main() {
    scanf("%d%d", &n, &k);
    for (int i = 1; i <= n; ++i) {
        scanf("%d", a + i);
        a[i] ^= a[i - 1];
    }
    if (k == 0) {
        printf("1 %d\n", n);
        return 0;
    }
    --k;
    for (int i = 0; i < 30; ++i) {
        if ((k >> i) & 1) continue;
        int x = (k >> i) ^ 1;
        unordered_map<int, int> mp;
        for (int j = 0; j <= n; ++j) mp[a[j] >> i] = j;
        for (int j = 0; j <= n; ++j) {
            int mx = mp[(a[j] >> i) ^ x];
            if (ansk < mx - j) ansk = mx - j, ansi = j + 1;
            else if (ansk == mx - j && j + 1 < ansi) ansi = j + 1;
        }
    }
    printf("%d %d\n", ansi, ansk);
    return 0;
}

Compilation message

xor.cpp: In function 'int main()':
xor.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &k);
     ~~~~~^~~~~~~~~~~~~~~~
xor.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", a + i);
         ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 480 KB Output is correct
3 Correct 2 ms 500 KB Output is correct
4 Correct 3 ms 656 KB Output is correct
5 Correct 14 ms 2164 KB Output is correct
6 Correct 15 ms 2520 KB Output is correct
7 Correct 19 ms 2788 KB Output is correct
8 Correct 18 ms 3240 KB Output is correct
9 Correct 293 ms 11148 KB Output is correct
10 Correct 163 ms 11908 KB Output is correct
11 Correct 303 ms 12248 KB Output is correct
12 Correct 129 ms 13576 KB Output is correct
13 Correct 226 ms 14336 KB Output is correct
14 Correct 261 ms 14956 KB Output is correct
15 Correct 89 ms 14956 KB Output is correct
16 Correct 168 ms 15968 KB Output is correct
17 Correct 1272 ms 35888 KB Output is correct
18 Correct 370 ms 36936 KB Output is correct
19 Correct 177 ms 36936 KB Output is correct
20 Correct 1062 ms 41896 KB Output is correct