#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define pb push_back
#define endl '\n'
#define fi first
#define se second
#define fio ios_base::sync_with_stdio(false);cin.tie(NULL);
#define CDIV(a,b) (((a)+(b)-(1))/(b))
const ll inf = 1e17 + 5;
const ll mod = 1e9 + 7;
const ll N = 3e5 + 30;
int mod_(int a, int b)
{
if(a >= 0)return a % b;
a += (-a/b + 1) * b;
return a % b;
}
vector<int>dsu(N, -1);
vector<int>g[N], rev[N];
set<int> ng[N], nrev[N];
vector<int>in(N), out(N);
int find(int x)
{
if(dsu[x] < 0)return x;
return dsu[x] = find(dsu[x]);
}
void unite(int x, int y)
{
x = find(x);
y = find(y);
int szx = -dsu[x], szy = -dsu[y];
if(x == y)return;
if(szx < szy)
{
dsu[y] += dsu[x];
dsu[x] = y;
}
else
{
dsu[x] += dsu[y];
dsu[y] = x;
}
}
void solve()
{
//cout << "HI2" << endl;
int n, m, q;
cin >> n >> m >> q;
for(int i = 1; i <= q; ++i)
{
//cout << i << endl;
string tmp;
char c;
cin >> c;
while(c != '<' and c != '=' and c != '>')
{
tmp.pb(c);
cin >> c;
}
int u, v;
u = stoi(tmp);
cin >> v;
//cout << u << ' ' << c << ' ' << v << endl;
if(c == '<')
{
g[v].pb(u);
rev[u].pb(v);
}
else if(c == '=')
{
unite(u, v);
}
else if(c == '>')
{
g[u].pb(v);
rev[v].pb(u);
}
}
//cout << "HI" << endl;
for(int i = 1; i <= m; ++i)
{
int x = find(i);
for(auto v : g[i])
ng[x].insert(v);
for(auto v : rev[i])
nrev[x].insert(v);
}
for(int i = 1; i <= m; ++i)
{
if(ng[find(i)].size())
cout << "K2" << endl;
else if(nrev[find(i)].size())
cout << "K1" << endl;
else
cout << "?" << endl;
}
}
int main()
{
fio;
//nt t; cin >> t; while(t--)
{
solve();
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
12 ms |
46428 KB |
Output is correct |
2 |
Correct |
12 ms |
46212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
79 ms |
55160 KB |
Output is correct |
2 |
Correct |
73 ms |
55600 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
36 ms |
49756 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
252 ms |
74456 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |