Submission #920875

#TimeUsernameProblemLanguageResultExecution timeMemory
920875gelastropodMonthly railway pass (LMIO18_menesinis_bilietas)C++14
46 / 100
3045 ms32332 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { int N, M, a, b, ans = 0; cin >> N >> M; char t; bool is1 = true, is2 = true; vector<vector<pair<int, bool>>> adjlist(N, vector<pair<int, bool>>()); for (int i = 0; i < M; i++) { cin >> a >> b >> t; a--, b--; adjlist[a].push_back(pair<int, int>(b, t == 'A')); adjlist[b].push_back(pair<int, int>(a, t == 'A')); if (t == 'A') is1 = false; if (t == 'T') is2 = false; } queue<int> bfs; vector<bool> visited(N, false); bfs.push(0); visited[0] = true; while (!bfs.empty()) { int i = bfs.front(); bfs.pop(); for (auto j : adjlist[i]) if (!visited[j.first]) visited[j.first] = true, bfs.push(j.first); } if (is1) { bool can = true; for (int i = 0; i < N; i++) { if (!visited[i]) can = false; } cout << (can ? N : 0) << '\n'; return 0; } else if (is2) { for (int i = 0; i < N; i++) { if ((int)adjlist[i].size() >= N - 1) ans++; } cout << ans << '\n'; return 0; } queue<pair<int, bool>> bfs1; vector<pair<int, int>> visited1; bool can; for (int i = 0; i < N; i++) { visited1 = vector<pair<int, int>>(N, pair<int, int>(false, false)); bfs1.push(pair<int, bool>(i, false)); visited1[i].first = true; while (!bfs1.empty()) { auto j = bfs1.front(); bfs1.pop(); for (auto k : adjlist[j.first]) { if (!j.second && !k.second) { if (!visited1[k.first].first) visited1[k.first].first = true, bfs1.push(pair<int, int>(k.first, false)); } if ((!j.second && k.second) || (j.second && !k.second)) { if (!visited1[k.first].second) visited1[k.first].second = true, bfs1.push(pair<int, int>(k.first, true)); } } } can = true; for (int i = 0; i < N; i++) { if (!(visited1[i].first || visited1[i].second)) can = false; } if (can) ans++; } cout << ans << '\n'; }
#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...