提出 #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
結果
AC × 2
AC × 59
AC × 1
セット名 テストケース
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