Submission #19286894
Source Code Expand
#ifdef DEBUG
#define _GLIBCXX_DEBUG
#endif
//#pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
int n;
vector<pair<int, int>> ans;
vector<int> a;
vector<int> b;
vector<int> perm;
vector<int> used;
bool det = true;
void Calc(int idx) {
int mx = 0;
int pos = -1;
while (!used[idx]) {
used[idx] = 1;
if (a[idx] > mx) {
mx = a[idx];
pos = idx;
}
if (b[perm[idx]] >= a[idx]) {
det = false;
}
idx = perm[idx];
}
idx = perm[pos];
while (idx != pos) {
ans.emplace_back(pos, idx);
idx = perm[idx];
}
}
int main() {
#ifdef DEBUG
freopen("input.txt", "r", stdin);
#else
// freopen("lupa.in","r",stdin);
// freopen("pupa.out","w",stdout);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout << setprecision(10);
cout << fixed;
cin >> n;
a.resize(n);
b.resize(n);
perm.resize(n);
used.assign(n, 0);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
for (int i = 0; i < n; ++i) {
cin >> b[i];
}
for (int i = 0; i < n; ++i) {
cin >> perm[i];
perm[i]--;
}
for (int i = 0; i < n; ++i) {
if (perm[i] != i) {
if (used[i] == 0) {
Calc(i);
}
}
}
if (!det) {
cout << "-1";
} else {
cout << ans.size() << '\n';
for(auto[left, right]: ans) {
cout << left + 1 << ' ' << right + 1 << '\n';
}
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Too Heavy |
| User | Paliukh |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 1700 Byte |
| Status | AC |
| Exec Time | 100 ms |
| Memory | 8444 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 0_000.txt, 0_001.txt, 0_002.txt |
| All | 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt, 1_036.txt, 1_037.txt, 1_038.txt, 1_039.txt, 1_040.txt, 1_041.txt, 1_042.txt, 1_043.txt, 1_044.txt, 1_045.txt, 1_046.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_000.txt | AC | 7 ms | 3516 KiB |
| 0_001.txt | AC | 3 ms | 3584 KiB |
| 0_002.txt | AC | 3 ms | 3572 KiB |
| 1_003.txt | AC | 2 ms | 3508 KiB |
| 1_004.txt | AC | 2 ms | 3616 KiB |
| 1_005.txt | AC | 3 ms | 3532 KiB |
| 1_006.txt | AC | 4 ms | 3588 KiB |
| 1_007.txt | AC | 3 ms | 3532 KiB |
| 1_008.txt | AC | 2 ms | 3528 KiB |
| 1_009.txt | AC | 1 ms | 3516 KiB |
| 1_010.txt | AC | 2 ms | 3564 KiB |
| 1_011.txt | AC | 71 ms | 8336 KiB |
| 1_012.txt | AC | 70 ms | 8368 KiB |
| 1_013.txt | AC | 67 ms | 8324 KiB |
| 1_014.txt | AC | 3 ms | 3508 KiB |
| 1_015.txt | AC | 2 ms | 3528 KiB |
| 1_016.txt | AC | 3 ms | 3516 KiB |
| 1_017.txt | AC | 2 ms | 3632 KiB |
| 1_018.txt | AC | 2 ms | 3484 KiB |
| 1_019.txt | AC | 2 ms | 3452 KiB |
| 1_020.txt | AC | 7 ms | 3536 KiB |
| 1_021.txt | AC | 3 ms | 3564 KiB |
| 1_022.txt | AC | 2 ms | 3616 KiB |
| 1_023.txt | AC | 3 ms | 3564 KiB |
| 1_024.txt | AC | 2 ms | 3564 KiB |
| 1_025.txt | AC | 2 ms | 3560 KiB |
| 1_026.txt | AC | 3 ms | 3560 KiB |
| 1_027.txt | AC | 3 ms | 3560 KiB |
| 1_028.txt | AC | 2 ms | 3528 KiB |
| 1_029.txt | AC | 100 ms | 8336 KiB |
| 1_030.txt | AC | 95 ms | 8372 KiB |
| 1_031.txt | AC | 92 ms | 8376 KiB |
| 1_032.txt | AC | 94 ms | 8384 KiB |
| 1_033.txt | AC | 92 ms | 8376 KiB |
| 1_034.txt | AC | 95 ms | 8440 KiB |
| 1_035.txt | AC | 95 ms | 8372 KiB |
| 1_036.txt | AC | 95 ms | 8324 KiB |
| 1_037.txt | AC | 94 ms | 8352 KiB |
| 1_038.txt | AC | 92 ms | 8352 KiB |
| 1_039.txt | AC | 58 ms | 6252 KiB |
| 1_040.txt | AC | 94 ms | 8376 KiB |
| 1_041.txt | AC | 94 ms | 8444 KiB |
| 1_042.txt | AC | 78 ms | 7320 KiB |
| 1_043.txt | AC | 58 ms | 6280 KiB |
| 1_044.txt | AC | 93 ms | 8272 KiB |
| 1_045.txt | AC | 94 ms | 8324 KiB |
| 1_046.txt | AC | 78 ms | 7332 KiB |