Submission #1235623

#TimeUsernameProblemLanguageResultExecution timeMemory
1235623hq77Monthly railway pass (LMIO18_menesinis_bilietas)C++20
0 / 100
184 ms3908 KiB
// Source: https://usaco.guide/general/io #include <bits/stdc++.h> using namespace std; vector<int>Size,parent; vector<int>rrank; int get(int x){ int root=parent[x]; if(parent[root]==root)return root; return parent[x]=get(parent[x]); } void merge(int x,int y){ int rootx=get(x); int rooty=get(y); if(rootx==rooty)return; if(rrank[rootx]<rrank[rooty]){ parent[rootx]=rooty; } else if(rrank[rooty]<rrank[rootx]){ parent[rooty]=rootx; } else{ parent[rooty]=rootx; rrank[rootx]++; } } int main() { int n,m;cin>>n>>m; parent.resize(n); // Size.resize(n+1,1); rrank.resize(n+1,0); for(int i=0;i<n;i++){ parent[i]=i; } for(int i=0;i<m;i++){ int a,b;char t;cin>>a>>b>>t; if(t=='T'){ merge(a-1,b-1); } } sort(parent.begin(),parent.end()); int cnt=0,maxx=0; for(int i=0;i<n;i++){ if(i==1){cnt++;continue;} if(parent[i]!=parent[i-1]){ maxx=max(maxx,cnt); cnt=0; } cnt++; } maxx=max(maxx,cnt); cout<<maxx; }
#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...