結果
問題 | No.2316 Freight Train |
ユーザー |
|
提出日時 | 2023-05-26 21:32:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 81 ms / 2,000 ms |
コード長 | 477 bytes |
コンパイル時間 | 1,450 ms |
コンパイル使用メモリ | 166,700 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-25 05:14:34 |
合計ジャッジ時間 | 5,621 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
#include<bits/stdc++.h> using namespace std; const int N=2e5+10; int fa[N]; int n,q,x,y; int getfather(int x){return fa[x]==x?x:fa[x]=getfather(fa[x]);} void merge(int x,int y){ x=getfather(x); y=getfather(y); fa[x]=y; } int main(){ scanf("%d%d",&n,&q); for (int i=1;i<=n;i++) fa[i]=i; for (int i=1;i<=n;i++){ scanf("%d",&x); if (x!=-1) merge(i,x); } for (int i=1;i<=q;i++){ scanf("%d%d",&x,&y); if (getfather(x)==getfather(y)) puts("Yes"); else puts("No"); } }