Submission #1096932

#TimeUsernameProblemLanguageResultExecution timeMemory
1096932ivazivaMonthly railway pass (LMIO18_menesinis_bilietas)C++14
16 / 100
403 ms92064 KiB
#include <bits/stdc++.h> using namespace std; #define MAXN 1000001 int n,m; vector<int> adj[2][MAXN]; int komp[MAXN],siz[MAXN],tren=0; bool pos[MAXN]; vector<int> koren; set<int> komponente; void dfs(int node) { pos[node]=true;komp[node]=tren;siz[tren]++; for (int sled:adj[0][node]) { if (pos[sled]==true) continue; else dfs(sled); } } void dfs1(int node) { pos[node]=true; for (int sled:adj[1][node]) komponente.insert(komp[sled]); for (int sled:adj[0][node]) { if (pos[sled]==true) continue; else dfs1(sled); } } int main() { cin>>n>>m; for (int i=1;i<=m;i++) { int x,y;cin>>x>>y;char c;cin>>c; if (c=='T') {adj[0][x].push_back(y);adj[0][y].push_back(x);} else {adj[1][x].push_back(y);adj[1][y].push_back(x);} } koren.push_back(0); for (int i=1;i<=n;i++) { if (pos[i]==true) continue; else {koren.push_back(i);tren++;dfs(i);} } for (int i=1;i<=n;i++) pos[i]=false; int ans=0; for (int i=1;i<=tren;i++) { dfs1(koren[i]); if (komponente.size()==tren-1) ans+=siz[i]; komponente.clear(); } cout<<ans<<endl; }

Compilation message (stderr)

menesinis_bilietas.cpp: In function 'int main()':
menesinis_bilietas.cpp:55:30: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   55 |         if (komponente.size()==tren-1) ans+=siz[i];
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~
#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...