Submission #2840390
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()
{
printf("-1\n");
return 0;
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 |
A - Shrinking |
User |
aquablitz11 |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1545 Byte |
Status |
WA |
Exec Time |
1 ms |
Memory |
256 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:37:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
^
./Main.cpp:39:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &A[i]);
^
./Main.cpp:43: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 / 300 |
Status |
|
|
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 |
Case Name |
Status |
Exec Time |
Memory |
0_00.txt |
WA |
1 ms |
256 KB |
0_01.txt |
WA |
1 ms |
256 KB |
0_02.txt |
WA |
1 ms |
256 KB |
0_03.txt |
WA |
1 ms |
256 KB |
1_00.txt |
WA |
1 ms |
256 KB |
1_01.txt |
WA |
1 ms |
256 KB |
1_02.txt |
WA |
1 ms |
256 KB |
1_03.txt |
WA |
1 ms |
256 KB |
1_04.txt |
WA |
1 ms |
256 KB |
1_05.txt |
WA |
1 ms |
256 KB |
1_06.txt |
WA |
1 ms |
256 KB |
1_07.txt |
WA |
1 ms |
256 KB |
1_08.txt |
WA |
1 ms |
256 KB |
1_09.txt |
WA |
1 ms |
256 KB |