# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
955505 | bunhadasou | 다리 (APIO19_bridges) | C++14 | 27 ms | 652 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define PB push_back
#define EB emplace_back
#define bit(n,i) ((n>>i)&1)
#define all(x) x.begin(),x.end()
#define ll long long
#define sz(x) (int)x.size()
#define TASK "cf"
using namespace std;
const int maxn=1111;
pair<pair<int,int>,int> ds[maxn];
int par[maxn],Rank[maxn];
int n,m,q;
void make_set(){
for (int i=1;i<=n;i++) {
par[i]=i;
Rank[i]=1;
}
}
int find(int x) {
if (x==par[x]) return x; return par[x]=find(par[x]);
}
void UNION(int x,int y){
x=find(x);y=find(y);
if (x==y) return ;
if (Rank[x]<Rank[y]) swap(x,y);
Rank[x]+=Rank[y];
par[y]=x;
return ;
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;;
for (int i=1;i<=m;i++){
int x,y,z; cin>>x>>y>>z;
ds[i]=mp(mp(x,y),z);
}
cin>>q;
while(q--){
int type,x,y,z; cin>>type>>x>>y;
if (type==1) {
ds[x].se=y;
}
else {
make_set();
for (int i=1;i<=m;i++) {
if (ds[i].se>=y) UNION(ds[i].fi.fi,ds[i].fi.se);
}
cout<<Rank[find(x)]<<"\n";
}
}
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |