Submission #2840372


Source Code Expand

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

const int N = 100010;

int n;
int A[N], B[N], cnt = 0;
map<int, vector<int>> pos;

void maintain(int x)
{
    if (!pos.count(x)) return;
    while (!pos[x].empty()) {
        int p = pos[x].back();
        if (A[p] == B[p])
            pos[x].pop_back();
        else
            break;
    }
    if (pos[x].empty())
        pos.erase(x);
}

void doswap(int i)
{
    ++cnt;
    swap(A[i], A[n]);
    maintain(A[i]);
    maintain(A[n]);
}

int main()
{
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        scanf("%d", &A[i]);
        A[n] ^= A[i];
    }
    for (int i = 0; i < n; ++i) {
        scanf("%d", &B[i]);
        B[n] ^= B[i];
        pos[B[i]].push_back(i);
    }

    int iter = 1e6;
    while (!pos.empty()) {
        if (--iter == 0) {
            cnt = -1;
            break;
        }
        maintain(A[n]);
        /*for (int i = 0; i <= n; ++i)
            printf("%d ", A[i]);
        printf("\n");
        for (auto v : pos) {
            printf("pos of %d:", v.first);
            for (auto x : v.second)
                printf(" %d", x);
            printf("\n");
        }*/
        if (pos.count(A[n])) {
            doswap(pos[A[n]].back());
        } else {
            int x = pos.begin()->first;
            maintain(x);
            if (pos.count(x))
                doswap(pos[x].back());
        }
    }
    printf("%d\n", cnt);

    return 0;
}

Submission Info

Submission Time
Task D - XOR Replace
User aquablitz11
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1507 Byte
Status WA
Exec Time 357 ms
Memory 13952 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:34:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
                    ^
./Main.cpp:36:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &A[i]);
                           ^
./Main.cpp:40:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &B[i]);
                           ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1000
Status
AC × 4
AC × 46
WA × 28
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt, 1_32.txt, 1_33.txt, 1_34.txt, 1_35.txt, 1_36.txt, 1_37.txt, 1_38.txt, 1_39.txt, 1_40.txt, 1_41.txt, 1_42.txt, 1_43.txt, 1_44.txt, 1_45.txt, 1_46.txt, 1_47.txt, 1_48.txt, 1_49.txt, 1_50.txt, 1_51.txt, 1_52.txt, 1_53.txt, 1_54.txt, 1_55.txt, 1_56.txt, 1_57.txt, 1_58.txt, 1_59.txt, 1_60.txt, 1_61.txt, 1_62.txt, 1_63.txt, 1_64.txt, 1_65.txt, 1_66.txt, 1_67.txt, 1_68.txt, 1_69.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 36 ms 256 KB
0_03.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 41 ms 256 KB
1_02.txt AC 41 ms 256 KB
1_03.txt AC 1 ms 256 KB
1_04.txt AC 1 ms 256 KB
1_05.txt AC 1 ms 256 KB
1_06.txt AC 1 ms 256 KB
1_07.txt AC 71 ms 11904 KB
1_08.txt AC 101 ms 11904 KB
1_09.txt AC 115 ms 11904 KB
1_10.txt AC 26 ms 1660 KB
1_11.txt AC 59 ms 1484 KB
1_12.txt AC 26 ms 1488 KB
1_13.txt AC 26 ms 1660 KB
1_14.txt WA 33 ms 1536 KB
1_15.txt AC 77 ms 1664 KB
1_16.txt WA 34 ms 1536 KB
1_17.txt AC 80 ms 1536 KB
1_18.txt WA 40 ms 1536 KB
1_19.txt AC 77 ms 1536 KB
1_20.txt WA 40 ms 1664 KB
1_21.txt AC 101 ms 1536 KB
1_22.txt WA 71 ms 1536 KB
1_23.txt AC 141 ms 1664 KB
1_24.txt WA 71 ms 1536 KB
1_25.txt AC 147 ms 1664 KB
1_26.txt WA 106 ms 1664 KB
1_27.txt AC 163 ms 1664 KB
1_28.txt WA 108 ms 1664 KB
1_29.txt AC 194 ms 1664 KB
1_30.txt WA 133 ms 1792 KB
1_31.txt AC 222 ms 1792 KB
1_32.txt WA 135 ms 1920 KB
1_33.txt AC 237 ms 1920 KB
1_34.txt WA 163 ms 2560 KB
1_35.txt AC 277 ms 2560 KB
1_36.txt WA 158 ms 2560 KB
1_37.txt AC 288 ms 2560 KB
1_38.txt WA 194 ms 4608 KB
1_39.txt AC 310 ms 4608 KB
1_40.txt WA 193 ms 4608 KB
1_41.txt AC 330 ms 4608 KB
1_42.txt WA 218 ms 8576 KB
1_43.txt AC 322 ms 8704 KB
1_44.txt WA 220 ms 8704 KB
1_45.txt AC 320 ms 8704 KB
1_46.txt WA 228 ms 11008 KB
1_47.txt AC 329 ms 10880 KB
1_48.txt WA 227 ms 11008 KB
1_49.txt AC 335 ms 10880 KB
1_50.txt WA 227 ms 11648 KB
1_51.txt AC 357 ms 11264 KB
1_52.txt WA 236 ms 11648 KB
1_53.txt AC 337 ms 11648 KB
1_54.txt WA 227 ms 11776 KB
1_55.txt AC 342 ms 11520 KB
1_56.txt WA 248 ms 11904 KB
1_57.txt AC 273 ms 11904 KB
1_58.txt WA 232 ms 11904 KB
1_59.txt AC 333 ms 13952 KB
1_60.txt WA 230 ms 11904 KB
1_61.txt AC 284 ms 11904 KB
1_62.txt WA 232 ms 11904 KB
1_63.txt AC 336 ms 11392 KB
1_64.txt WA 227 ms 11776 KB
1_65.txt AC 291 ms 11776 KB
1_66.txt WA 229 ms 11776 KB
1_67.txt AC 345 ms 11776 KB
1_68.txt WA 234 ms 11904 KB
1_69.txt AC 328 ms 11904 KB