| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1295234 | eldaees131313 | KOVANICE (COI15_kovanice) | C++20 | 0 ms | 0 KiB |
////////////////////////////// Author:eldaee, coder_viper
#pragma GCC optimize ("Ofast")
#include <bits/stdc++.h>
#define int long long
#define str string
#define vec vector
#define dou double
#define ld long double
#define pb push_back
#define ppb pop_back
#define eb emplace_back
#define YES cout << "YES" << '\n'
#define Yes cout << "Yes" << '\n'
#define NO cout << "NO" << '\n'
#define No cout << "No" << '\n'
#define gcd __gcd
#define all(x) x.begin(),x.end()
#define eldaee ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
/*
*/
void solve() {
int n, m, vv;
cin >> n >> m >> vv;
vec<int> v(m+1, 0);
vec<vec<int>> vec(m+1);
vec<pair<int,int>> z;
for (int i = 0; i < vv; i++) {
string s;
cin >> s;
int a = 0, b = 0;
int pos = 0;
while (s[pos] >= '0' && s[pos] <= '9') {
a = a*10 + (s[pos]-'0'); pos++;
}
char c = s[pos]; pos++;
while (s[pos] >= '0' && s[pos] <= '9') {
b = b*10 + (s[pos]-'0'); pos++;
}
if (c == '=') {
z.pb({a,b});
}
else if (c == '<') {
vec[a].pb(b);
}
}
for (auto p : z) {
int a = p.first, b = p.second;
int t = max(v[a], v[b]);
v[a] = t;
v[b] = t;
for (int i = 1; i <= m; i++) {
if (v[i] == v[a]) {
v[i] = t;
}
}
}
for (int i = 1; i <= m; i++) {
for (auto b : vec[i]) {
if (v[i] == 0) {
v[i] = 1;
}
if (v[b] == 0) {
v[b] = v[i]+1;
}
else {
v[b] = max(v[b], v[i]+1);
}
}
}
for (int i = 1; i <= m; i++) {
if (v[i] > 0 && v[i] <= n) {
cout << "K" << v[i] << "\n";
}
else {
cout << "?\n";
}
}
}
signed main() {
eldaee
solve();
}
