Submission #35190287
Source Code Expand
#include <bits/stdc++.h>
#define R(i, a, b) for (auto i = (a); i < (b); ++i)
#define L(i, a, b) for (auto i = (b) - 1; i >= (a); --i)
#define N(a) int((a).size())
#define V(a) (a).begin(), (a).end()
#define B(a, n) (a), (a) + (n)
#define spc << ' '
#define ntr << '\n'
#define X(x) cerr << #x << " = " << (x)
#define A(a) putA(cerr << #a << " = ", a)
#define T() cerr << "TIME = " << double(clock() - T0) / CLOCKS_PER_SEC
using namespace std;
using i64 = long long;
clock_t T0 = clock();
ostream &putA(ostream &out, auto l, auto r) {
for (auto x = l; x != r; ++x) out << *x spc;
return out;
}
int nT, T;
constexpr int xn = 100000 + 7;
int n, a[xn], b[xn];
int te[xn];
int fr(int u) {
return u == te[u] ? u : te[u] = fr(te[u]);
}
bool merge(int u, int v) {
if (fr(u) == fr(v)) return false;
te[fr(u)] = fr(v);
return true;
}
int resolveT() {
cin >> n;
R(i, 0, n) cin >> a[i];
R(i, 0, n) cin >> b[i];
a[n] = accumulate(B(a, n), 0, bit_xor<int>());
b[n] = accumulate(B(b, n), 0, bit_xor<int>());
// A(B(a, n + 1)) ntr;
// A(B(b, n + 1)) ntr;
vector<int> sa(B(a, n + 1)), sb(B(b, n + 1));
sort(V(sa));
sort(V(sb));
if (sa != sb) return -1;
vector<int> s;
R(i, 0, n + 1) if (a[i] != b[i] or i == n) s.push_back(a[i]);
sort(V(s));
s.resize(unique(V(s)) - s.begin());
int res = N(s) - 1;
iota(B(te, N(s)), 0);
R(i, 0, n + 1) if (a[i] != b[i] or i == n) {
if (i < n) res += 1;
a[i] = lower_bound(V(s), a[i]) - s.begin();
b[i] = lower_bound(V(s), b[i]) - s.begin();
res -= merge(a[i], b[i]);
}
return res;
}
void solveT() {
cout << resolveT() ntr;
}
int main() {
cerr << fixed << setprecision(3);
ios::sync_with_stdio(false);
cin.tie(nullptr);
// cin >> nT;
nT = 1;
for (; T < nT; ++T) solveT();
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - XOR Replace |
| User | George1123 |
| Language | C++ (GCC 9.2.1) |
| Score | 1000 |
| Code Size | 1798 Byte |
| Status | AC |
| Exec Time | 68 ms |
| Memory | 8684 KiB |
Compile Error
./Main.cpp:15:29: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
15 | ostream &putA(ostream &out, auto l, auto r) {
| ^~~~
./Main.cpp:15:37: warning: use of ‘auto’ in parameter declaration only available with ‘-fconcepts’
15 | ostream &putA(ostream &out, auto l, auto r) {
| ^~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
| 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, 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 | 5 ms | 3544 KiB |
| 0_01.txt | AC | 2 ms | 3580 KiB |
| 0_02.txt | AC | 2 ms | 3584 KiB |
| 0_03.txt | AC | 2 ms | 3696 KiB |
| 1_00.txt | AC | 2 ms | 3656 KiB |
| 1_01.txt | AC | 2 ms | 3568 KiB |
| 1_02.txt | AC | 2 ms | 3436 KiB |
| 1_03.txt | AC | 2 ms | 3692 KiB |
| 1_04.txt | AC | 2 ms | 3424 KiB |
| 1_05.txt | AC | 3 ms | 3584 KiB |
| 1_06.txt | AC | 2 ms | 3592 KiB |
| 1_07.txt | AC | 36 ms | 4824 KiB |
| 1_08.txt | AC | 51 ms | 8684 KiB |
| 1_09.txt | AC | 44 ms | 5624 KiB |
| 1_10.txt | AC | 30 ms | 5040 KiB |
| 1_11.txt | AC | 27 ms | 4652 KiB |
| 1_12.txt | AC | 30 ms | 5112 KiB |
| 1_13.txt | AC | 26 ms | 5252 KiB |
| 1_14.txt | AC | 36 ms | 5340 KiB |
| 1_15.txt | AC | 32 ms | 4856 KiB |
| 1_16.txt | AC | 36 ms | 5388 KiB |
| 1_17.txt | AC | 31 ms | 4608 KiB |
| 1_18.txt | AC | 39 ms | 5496 KiB |
| 1_19.txt | AC | 34 ms | 4680 KiB |
| 1_20.txt | AC | 43 ms | 5252 KiB |
| 1_21.txt | AC | 33 ms | 4672 KiB |
| 1_22.txt | AC | 44 ms | 5396 KiB |
| 1_23.txt | AC | 33 ms | 4724 KiB |
| 1_24.txt | AC | 42 ms | 5392 KiB |
| 1_25.txt | AC | 35 ms | 4820 KiB |
| 1_26.txt | AC | 49 ms | 5428 KiB |
| 1_27.txt | AC | 34 ms | 4668 KiB |
| 1_28.txt | AC | 49 ms | 5396 KiB |
| 1_29.txt | AC | 35 ms | 4724 KiB |
| 1_30.txt | AC | 54 ms | 5396 KiB |
| 1_31.txt | AC | 36 ms | 4828 KiB |
| 1_32.txt | AC | 57 ms | 5400 KiB |
| 1_33.txt | AC | 36 ms | 4788 KiB |
| 1_34.txt | AC | 60 ms | 5436 KiB |
| 1_35.txt | AC | 38 ms | 4792 KiB |
| 1_36.txt | AC | 56 ms | 5276 KiB |
| 1_37.txt | AC | 36 ms | 4768 KiB |
| 1_38.txt | AC | 63 ms | 5276 KiB |
| 1_39.txt | AC | 38 ms | 4740 KiB |
| 1_40.txt | AC | 63 ms | 5496 KiB |
| 1_41.txt | AC | 37 ms | 4724 KiB |
| 1_42.txt | AC | 65 ms | 5500 KiB |
| 1_43.txt | AC | 39 ms | 4768 KiB |
| 1_44.txt | AC | 68 ms | 5480 KiB |
| 1_45.txt | AC | 40 ms | 4652 KiB |
| 1_46.txt | AC | 67 ms | 5540 KiB |
| 1_47.txt | AC | 42 ms | 4788 KiB |
| 1_48.txt | AC | 65 ms | 5600 KiB |
| 1_49.txt | AC | 39 ms | 4656 KiB |
| 1_50.txt | AC | 63 ms | 5620 KiB |
| 1_51.txt | AC | 39 ms | 4716 KiB |
| 1_52.txt | AC | 65 ms | 5512 KiB |
| 1_53.txt | AC | 41 ms | 4724 KiB |
| 1_54.txt | AC | 63 ms | 5452 KiB |
| 1_55.txt | AC | 39 ms | 4712 KiB |
| 1_56.txt | AC | 65 ms | 5512 KiB |
| 1_57.txt | AC | 41 ms | 4820 KiB |
| 1_58.txt | AC | 65 ms | 5624 KiB |
| 1_59.txt | AC | 41 ms | 4724 KiB |
| 1_60.txt | AC | 66 ms | 5464 KiB |
| 1_61.txt | AC | 36 ms | 4660 KiB |
| 1_62.txt | AC | 65 ms | 5528 KiB |
| 1_63.txt | AC | 37 ms | 4612 KiB |
| 1_64.txt | AC | 64 ms | 5576 KiB |
| 1_65.txt | AC | 39 ms | 4756 KiB |
| 1_66.txt | AC | 68 ms | 5512 KiB |
| 1_67.txt | AC | 39 ms | 4652 KiB |
| 1_68.txt | AC | 65 ms | 5516 KiB |
| 1_69.txt | AC | 37 ms | 4600 KiB |