提出 #41147123
ソースコード 拡げる
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
template<class T> inline bool chmin(T& a, T b){ if (a > b){a = b; return true;} return false;}
template<class T> inline bool chmax(T& a, T b){ if (a < b){a = b; return true;} return false;}
//using mint = modint998244353;
//using mint = modint1000000007;
//using mint = modint; // mint::set_mod(p); later
//using mint = static_modint<1000000009>;
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
int N;
cin >> N;
vector<int> p(N);
for (int i = 1; i < N; i++){
cin >> p[i];
p[i]--;
}
dsu uf(N);
vector<int> r(N); // r[i] = i を代表元とするような強連結成分内の最小頂点
iota(r.begin(), r.end(), 0);
auto get_min = [&](int i){ return r[uf.leader(i)]; };
int Q;
cin >> Q;
for (int i = 0; i < Q; i++){
int ty;
cin >> ty;
if (ty == 1){
int u, v;
cin >> u >> v;
u--; v--;
while (get_min(u) > v){
int mn = get_min(u); // 現在の SCC の中での最小頂点
int nr = get_min(p[mn]); // 一つ前の SCC の最小頂点
r[uf.merge(mn, p[mn])] = nr;
}
} else {
int x;
cin >> x;
x--;
cout << get_min(x) + 1 << "\n";
}
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - Minimum Reachable City |
| ユーザ | unnohideyuki |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 600 |
| コード長 | 1444 Byte |
| 結果 | AC |
| 実行時間 | 75 ms |
| メモリ | 5604 KiB |
ジャッジ結果
| セット名 | Sample | All | AfterContest | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | 0 / 0 | ||||||
| 結果 |
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_random_00.txt, 01_random_01.txt, 01_random_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, 02_star_00.txt, 02_star_01.txt, 02_star_02.txt, 02_star_03.txt, 02_star_04.txt, 03_pb_00.txt, 03_pb_01.txt, 03_pb_02.txt, 03_pb_03.txt, 03_pb_04.txt, 04_path_00.txt, 04_path_01.txt, 04_path_02.txt, 04_path_03.txt, 04_path_04.txt, 05_handmade_00.txt, 05_handmade_01.txt |
| AfterContest | aftercontest_01.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 8 ms | 3620 KiB |
| 00_sample_01.txt | AC | 2 ms | 3516 KiB |
| 01_random_00.txt | AC | 38 ms | 3576 KiB |
| 01_random_01.txt | AC | 70 ms | 5592 KiB |
| 01_random_02.txt | AC | 69 ms | 5416 KiB |
| 01_random_03.txt | AC | 70 ms | 5584 KiB |
| 01_random_04.txt | AC | 70 ms | 5484 KiB |
| 01_random_05.txt | AC | 73 ms | 5420 KiB |
| 01_random_06.txt | AC | 69 ms | 5528 KiB |
| 01_random_07.txt | AC | 70 ms | 5584 KiB |
| 01_random_08.txt | AC | 70 ms | 5584 KiB |
| 01_random_09.txt | AC | 75 ms | 5412 KiB |
| 01_random_10.txt | AC | 69 ms | 5420 KiB |
| 01_random_11.txt | AC | 70 ms | 5516 KiB |
| 01_random_12.txt | AC | 70 ms | 5584 KiB |
| 01_random_13.txt | AC | 69 ms | 5484 KiB |
| 01_random_14.txt | AC | 70 ms | 5484 KiB |
| 01_random_15.txt | AC | 68 ms | 5592 KiB |
| 01_random_16.txt | AC | 69 ms | 5592 KiB |
| 01_random_17.txt | AC | 70 ms | 5420 KiB |
| 01_random_18.txt | AC | 69 ms | 5580 KiB |
| 01_random_19.txt | AC | 69 ms | 5480 KiB |
| 01_random_20.txt | AC | 68 ms | 5584 KiB |
| 01_random_21.txt | AC | 69 ms | 5484 KiB |
| 01_random_22.txt | AC | 72 ms | 5356 KiB |
| 01_random_23.txt | AC | 68 ms | 5408 KiB |
| 01_random_24.txt | AC | 69 ms | 5468 KiB |
| 01_random_25.txt | AC | 70 ms | 5468 KiB |
| 01_random_26.txt | AC | 70 ms | 5532 KiB |
| 01_random_27.txt | AC | 69 ms | 5536 KiB |
| 01_random_28.txt | AC | 72 ms | 5408 KiB |
| 01_random_29.txt | AC | 68 ms | 5528 KiB |
| 01_random_30.txt | AC | 63 ms | 5480 KiB |
| 01_random_31.txt | AC | 62 ms | 5472 KiB |
| 01_random_32.txt | AC | 61 ms | 5580 KiB |
| 01_random_33.txt | AC | 62 ms | 5528 KiB |
| 01_random_34.txt | AC | 60 ms | 5516 KiB |
| 01_random_35.txt | AC | 72 ms | 5536 KiB |
| 01_random_36.txt | AC | 72 ms | 5484 KiB |
| 01_random_37.txt | AC | 70 ms | 5472 KiB |
| 01_random_38.txt | AC | 72 ms | 5528 KiB |
| 01_random_39.txt | AC | 74 ms | 5580 KiB |
| 02_star_00.txt | AC | 63 ms | 5420 KiB |
| 02_star_01.txt | AC | 64 ms | 5512 KiB |
| 02_star_02.txt | AC | 61 ms | 5588 KiB |
| 02_star_03.txt | AC | 62 ms | 5604 KiB |
| 02_star_04.txt | AC | 62 ms | 5448 KiB |
| 03_pb_00.txt | AC | 70 ms | 5416 KiB |
| 03_pb_01.txt | AC | 70 ms | 5420 KiB |
| 03_pb_02.txt | AC | 71 ms | 5352 KiB |
| 03_pb_03.txt | AC | 72 ms | 5468 KiB |
| 03_pb_04.txt | AC | 70 ms | 5588 KiB |
| 04_path_00.txt | AC | 65 ms | 5472 KiB |
| 04_path_01.txt | AC | 69 ms | 5516 KiB |
| 04_path_02.txt | AC | 61 ms | 5356 KiB |
| 04_path_03.txt | AC | 69 ms | 5540 KiB |
| 04_path_04.txt | AC | 69 ms | 5604 KiB |
| 05_handmade_00.txt | AC | 55 ms | 4364 KiB |
| 05_handmade_01.txt | AC | 61 ms | 5356 KiB |
| aftercontest_01.txt | AC | 58 ms | 5356 KiB |