Submission #1295227

#TimeUsernameProblemLanguageResultExecution timeMemory
1295227camil7KOVANICE (COI15_kovanice)C++20
0 / 100
39 ms28336 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' #define int long long #define ll long long #define ull unsigned long long #define lb lower_bound #define ub upper_bound #define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) int gcd(int a, int b){ return __gcd(a, b); } int lcm(int a, int b){ return a / gcd(a, b) * b; } int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; void solve(){ int n, m, k; cin >> n >> m >> k; string arr[m + 5]; int dis1[m + 5], dis2[m + 5]; memset(dis1, -1, sizeof(dis1)); memset(dis2, -1, sizeof(dis2)); queue<int> q1, q2; vector<int> vt[m + 5]; for (int i = 1; i <= k; i++ ){ string s; cin >> s; int a = s[0] - '0', b = s[2] - '0'; char c = s[1]; if(c == '<'){ q1.push(a); q2.push(b); dis1[a] = 0; dis2[b] = 0; arr[a] = "K1"; arr[b] = "K2"; } else{ vt[a].push_back(b); vt[b].push_back(a); } } while(q1.size()){ int x = q1.front(); q1.pop(); for (int i : vt[x]){ if(dis1[i] == -1){ dis1[i] = dis1[x] + 1; arr[i] = "K1"; q1.push(i); } } } while(q2.size()){ int x = q2.front(); q2.pop(); for (int i : vt[x]){ if(dis2[i] == -1){ dis2[i] = dis2[x] + 1; arr[i] = "K2"; q2.push(i); } } } for (int i = 1; i <= m; i++ ){ if(dis1[i] == -1 && dis2[i] == -1)arr[i] = "?"; } for (int i = 1; i <= m; i++ ){ cout << arr[i] << endl; } } signed main(){ IOS; 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...