Submission #1139336

#TimeUsernameProblemLanguageResultExecution timeMemory
1139336seby1305Monthly railway pass (LMIO18_menesinis_bilietas)C++20
100 / 100
427 ms97496 KiB
#include <bits/stdc++.h> #define ll long long #define pi pair<int, char> #define pint pair<int, int> #define ff first #define ss second #define pb push_back #define all(v) v.begin(), v.end() #define allsir(v) v+1, v+n+1 #define inf 1e9 using namespace std; const string file = ""; ifstream fin(file+".in"); ofstream fout(file+".out"); const int dim = 500001, mod = 1e9+7; int n, m, a, b, i, comp[dim], sz[dim]; char c; vector<pi> g[dim]; set<int> gc[dim]; struct muchie { int a, b; char c; }; vector<muchie> lm; void dfs(int nod, int nrc) { comp[nod] = nrc; sz[nrc]++; for (auto x : g[nod]) { if (comp[x.ff]) continue; if (x.ss == 'T') dfs(x.ff, nrc); } } void solve() { cin >> n >> m; for (i = 1; i <= m; i++) { cin >> a >> b >> c; lm.pb({a, b, c}); g[a].pb({b, c}); g[b].pb({a, c}); } int nrc = 0; for (i = 1; i <= n; i++) { if (!comp[i]) { ++nrc; dfs(i, nrc); } } for (i = 0; i < m; i++) { int a = lm[i].a, b = lm[i].b, c = lm[i].c; if (c == 'A') { if (comp[a] == comp[b]) continue; gc[comp[a]].insert(comp[b]); gc[comp[b]].insert(comp[a]); } } int rez = 0; for (i = 1; i <= nrc; i++) { if (gc[i].size() == nrc-1) rez += sz[i]; } cout << rez; } int main() { int t = 1; ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); //cin >> t; while (t--) solve(); 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...