제출 #247020

#제출 시각아이디문제언어결과실행 시간메모리
247020dolphingarlicMonthly railway pass (LMIO18_menesinis_bilietas)C++14
16 / 100
730 ms92000 KiB
#include <bits/stdc++.h> #define FOR(i, x, y) for (int i = x; i < y; i++) typedef long long ll; using namespace std; vector<pair<int, int>> bus; int cmp[500001]; set<int> graph[500001]; int find(int A) { while (A != cmp[A]) cmp[A] = cmp[cmp[A]], A = cmp[A]; return A; } void onion(int A, int B) { cmp[find(A)] = cmp[find(B)]; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; iota(cmp + 1, cmp + n + 1, 1); while (m--) { int u, v; char t; cin >> u >> v >> t; if (t == 'A') bus.push_back({u, v}); else onion(u, v); } for (pair<int, int> i : bus) { graph[find(i.first)].insert(find(i.second)); graph[find(i.second)].insert(find(i.first)); } set<int> cmpset; FOR(i, 1, n + 1) cmpset.insert(find(i)); int ans = 0; FOR(i, 1, n + 1) if (graph[find(i)].size() == cmpset.size() - 1) ans++; 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...