Submission #57763224
Source Code Expand
#include <bits/stdc++.h>
using i64 = long long;
using u64 = unsigned long long;
using u32 = unsigned;
std::vector<int> minp, primes;
void sieve(int n) {
minp.assign(n + 1, 0);
primes.clear();
for (int i = 2; i <= n; i++) {
if (minp[i] == 0) {
minp[i] = i;
primes.push_back(i);
}
for (auto p : primes) {
if (i * p > n) {
break;
}
minp[i * p] = p;
if (p == minp[i]) {
break;
}
}
}
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int N;
std::cin >> N;
std::vector<int> P(N), A(N);
for (int i = 0; i < N; i++) {
std::cin >> P[i];
P[i]--;
}
for (int i = 0; i < N; i++) {
std::cin >> A[i];
A[i]--;
}
sieve(N);
std::vector<int> f(N + 1, -1);
std::vector<bool> vis(N);
std::vector<int> ans(N);
for (int i = 0; i < N; i++) {
if (vis[i]) {
continue;
}
std::vector<int> c;
int j = i;
while (!vis[j]) {
vis[j] = true;
c.push_back(j);
j = P[j];
}
const int L = c.size();
std::vector<int> ps;
int x = L;
while (x > 1) {
int p = minp[x];
int v = 1;
while (x % p == 0) {
x /= p;
v *= p;
ps.push_back(v);
}
}
int k = -1;
for (int i = 0; i < L; i++) {
bool ok = true;
for (auto p : ps) {
if (f[p] != -1 && i % p != f[p]) {
ok = false;
}
}
if (ok && (k == -1 || A[c[i]] < A[c[k]])) {
k = i;
}
}
assert(k != -1);
for (int i = 0; i < L; i++) {
ans[c[i]] = A[c[(i + k) % L]];
}
for (auto p : ps) {
f[p] = k % p;
}
}
for (int i = 0; i < N; i++) {
std::cout << ans[i] + 1 << " \n"[i == N - 1];
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Lexicographically Smallest Permutation |
| User | jiangly |
| Language | C++ 20 (gcc 12.2) |
| Score | 575 |
| Code Size | 2310 Byte |
| Status | AC |
| Exec Time | 37 ms |
| Memory | 8264 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 575 / 575 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt, 01_random_65.txt, 01_random_66.txt, 01_random_67.txt, 01_random_68.txt, 01_random_69.txt, 01_random_70.txt, 01_random_71.txt, 01_random_72.txt, 01_random_73.txt, 01_random_74.txt, 01_random_75.txt, 01_random_76.txt, 01_random_77.txt, 01_random_78.txt, 01_random_79.txt, 02_small_80.txt, 02_small_81.txt, 02_small_82.txt, 02_small_83.txt, 02_small_84.txt, 02_small_85.txt, 02_small_86.txt, 02_small_87.txt, 02_small_88.txt, 02_small_89.txt, 02_small_90.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3372 KiB |
| 00_sample_01.txt | AC | 1 ms | 3520 KiB |
| 00_sample_02.txt | AC | 1 ms | 3520 KiB |
| 01_random_03.txt | AC | 35 ms | 7912 KiB |
| 01_random_04.txt | AC | 35 ms | 8264 KiB |
| 01_random_05.txt | AC | 37 ms | 7688 KiB |
| 01_random_06.txt | AC | 35 ms | 7720 KiB |
| 01_random_07.txt | AC | 36 ms | 8108 KiB |
| 01_random_08.txt | AC | 35 ms | 8176 KiB |
| 01_random_09.txt | AC | 35 ms | 7752 KiB |
| 01_random_10.txt | AC | 35 ms | 7756 KiB |
| 01_random_11.txt | AC | 10 ms | 4656 KiB |
| 01_random_12.txt | AC | 20 ms | 6128 KiB |
| 01_random_13.txt | AC | 10 ms | 4728 KiB |
| 01_random_14.txt | AC | 2 ms | 3468 KiB |
| 01_random_15.txt | AC | 27 ms | 6836 KiB |
| 01_random_16.txt | AC | 16 ms | 5384 KiB |
| 01_random_17.txt | AC | 35 ms | 7400 KiB |
| 01_random_18.txt | AC | 35 ms | 7348 KiB |
| 01_random_19.txt | AC | 35 ms | 7308 KiB |
| 01_random_20.txt | AC | 35 ms | 7172 KiB |
| 01_random_21.txt | AC | 36 ms | 7056 KiB |
| 01_random_22.txt | AC | 35 ms | 7304 KiB |
| 01_random_23.txt | AC | 35 ms | 7392 KiB |
| 01_random_24.txt | AC | 28 ms | 6900 KiB |
| 01_random_25.txt | AC | 33 ms | 7776 KiB |
| 01_random_26.txt | AC | 31 ms | 7336 KiB |
| 01_random_27.txt | AC | 8 ms | 4152 KiB |
| 01_random_28.txt | AC | 7 ms | 4120 KiB |
| 01_random_29.txt | AC | 16 ms | 5432 KiB |
| 01_random_30.txt | AC | 23 ms | 5972 KiB |
| 01_random_31.txt | AC | 35 ms | 7332 KiB |
| 01_random_32.txt | AC | 33 ms | 7284 KiB |
| 01_random_33.txt | AC | 27 ms | 7444 KiB |
| 01_random_34.txt | AC | 29 ms | 7548 KiB |
| 01_random_35.txt | AC | 36 ms | 7828 KiB |
| 01_random_36.txt | AC | 36 ms | 7656 KiB |
| 01_random_37.txt | AC | 35 ms | 7640 KiB |
| 01_random_38.txt | AC | 36 ms | 8080 KiB |
| 01_random_39.txt | AC | 36 ms | 7856 KiB |
| 01_random_40.txt | AC | 36 ms | 7748 KiB |
| 01_random_41.txt | AC | 36 ms | 8120 KiB |
| 01_random_42.txt | AC | 36 ms | 8120 KiB |
| 01_random_43.txt | AC | 35 ms | 8112 KiB |
| 01_random_44.txt | AC | 35 ms | 7388 KiB |
| 01_random_45.txt | AC | 35 ms | 7400 KiB |
| 01_random_46.txt | AC | 35 ms | 7424 KiB |
| 01_random_47.txt | AC | 36 ms | 7076 KiB |
| 01_random_48.txt | AC | 35 ms | 6952 KiB |
| 01_random_49.txt | AC | 35 ms | 7236 KiB |
| 01_random_50.txt | AC | 35 ms | 7300 KiB |
| 01_random_51.txt | AC | 32 ms | 7376 KiB |
| 01_random_52.txt | AC | 19 ms | 6140 KiB |
| 01_random_53.txt | AC | 34 ms | 7872 KiB |
| 01_random_54.txt | AC | 8 ms | 4172 KiB |
| 01_random_55.txt | AC | 13 ms | 4876 KiB |
| 01_random_56.txt | AC | 22 ms | 5984 KiB |
| 01_random_57.txt | AC | 31 ms | 7076 KiB |
| 01_random_58.txt | AC | 34 ms | 7668 KiB |
| 01_random_59.txt | AC | 2 ms | 3652 KiB |
| 01_random_60.txt | AC | 28 ms | 7408 KiB |
| 01_random_61.txt | AC | 28 ms | 7048 KiB |
| 01_random_62.txt | AC | 28 ms | 7436 KiB |
| 01_random_63.txt | AC | 28 ms | 7012 KiB |
| 01_random_64.txt | AC | 28 ms | 7008 KiB |
| 01_random_65.txt | AC | 27 ms | 7088 KiB |
| 01_random_66.txt | AC | 27 ms | 7356 KiB |
| 01_random_67.txt | AC | 26 ms | 7404 KiB |
| 01_random_68.txt | AC | 22 ms | 7100 KiB |
| 01_random_69.txt | AC | 20 ms | 6900 KiB |
| 01_random_70.txt | AC | 36 ms | 7412 KiB |
| 01_random_71.txt | AC | 32 ms | 7132 KiB |
| 01_random_72.txt | AC | 36 ms | 7416 KiB |
| 01_random_73.txt | AC | 28 ms | 7404 KiB |
| 01_random_74.txt | AC | 28 ms | 7344 KiB |
| 01_random_75.txt | AC | 36 ms | 7388 KiB |
| 01_random_76.txt | AC | 31 ms | 7436 KiB |
| 01_random_77.txt | AC | 35 ms | 7368 KiB |
| 01_random_78.txt | AC | 28 ms | 7364 KiB |
| 01_random_79.txt | AC | 28 ms | 7372 KiB |
| 02_small_80.txt | AC | 1 ms | 3480 KiB |
| 02_small_81.txt | AC | 1 ms | 3440 KiB |
| 02_small_82.txt | AC | 1 ms | 3400 KiB |
| 02_small_83.txt | AC | 1 ms | 3516 KiB |
| 02_small_84.txt | AC | 1 ms | 3508 KiB |
| 02_small_85.txt | AC | 1 ms | 3516 KiB |
| 02_small_86.txt | AC | 1 ms | 3512 KiB |
| 02_small_87.txt | AC | 1 ms | 3500 KiB |
| 02_small_88.txt | AC | 1 ms | 3404 KiB |
| 02_small_89.txt | AC | 1 ms | 3640 KiB |
| 02_small_90.txt | AC | 1 ms | 3500 KiB |