Submission #1139982

#TimeUsernameProblemLanguageResultExecution timeMemory
1139982c32ardashMonthly railway pass (LMIO18_menesinis_bilietas)C++20
16 / 100
263 ms65624 KiB
#include <bits/stdc++.h> using namespace std; const int NMAX=5e5+5; vector<int> adjt[NMAX], adja[NMAX], cc[NMAX]; int ntc[NMAX], viz[NMAX], nviz=1, ncc, n, m; void DFS(int u) { ntc[u]=ncc; cc[ncc].push_back(u); viz[u]=1; for(auto v:adjt[u]) if(viz[v]!=1) DFS(v); } int main() { cin>>n>>m; for(int i=1;i<=m;i++) { int u, v; char ch; cin>>u>>v>>ch; if(ch=='T') { adjt[u].push_back(v); adjt[v].push_back(u); } else { adja[u].push_back(v); adja[v].push_back(u); } } for(int i=1;i<=n;i++) if(viz[i]!=1) { ncc++; DFS(i); } int ans=0; for(int i=1;i<=ncc;i++) { int cnt=1; nviz++; viz[cc[i][0]]=nviz; for(auto u:cc[i]) for(auto v:adja[u]) if(viz[ntc[v]]!=nviz) { viz[ntc[v]]=nviz; cnt++; } if(cnt==ncc) ans+=cc[i].size(); } cout<<ans; return 0; }
#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...