제출 #1318436

#제출 시각아이디문제언어결과실행 시간메모리
1318436nnargizKOVANICE (COI15_kovanice)C++20
0 / 100
643 ms89092 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define int long long using namespace __gnu_pbds; using namespace std; const int mod = 1e6 + 3; const int inf = 1e9; const int maxx = 3e6 + 5; const int lg = 26; typedef tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset; int tmr = 0; set <pair <int, int> > s; vector <int> g[maxx], dis(maxx), col(maxx, -1); void dfs (int u) { col[u] = tmr; for (auto to : g[u]) { if (col[to] == -1 && s.count({to, u})) { dfs(to); } } } void solve () { int n, m, v; cin >> n >> m >> v; while (v--) { int a, b; char c; cin >> a >> c >> b; if (c == '=') { g[a].push_back(b); g[b].push_back(a); s.insert({a, b}); s.insert({b, a}); } else { g[a].push_back(b); s.insert({a, b}); } } for (int i = 1; i <= m; i++) { if (col[i] == -1) { tmr++; dfs(i); } } for (int i = 1; i <= m; i++) { if (col[i] == -1) { cout << '?' << endl; } else { cout << 'K' << col[i] << endl; } } } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t = 1; //cin >> t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...