Submission #955505

#TimeUsernameProblemLanguageResultExecution timeMemory
955505bunhadasouBridges (APIO19_bridges)C++14
13 / 100
27 ms652 KiB
#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;

}

Compilation message (stderr)

bridges.cpp: In function 'int find(int)':
bridges.cpp:28:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   28 |     if (x==par[x]) return x; return par[x]=find(par[x]);
      |     ^~
bridges.cpp:28:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   28 |     if (x==par[x]) return x; return par[x]=find(par[x]);
      |                              ^~~~~~
bridges.cpp: In function 'int main()':
bridges.cpp:49:22: warning: unused variable 'z' [-Wunused-variable]
   49 |         int type,x,y,z; cin>>type>>x>>y;
      |                      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...