//g++ -o sol sol.cpp
//cd C:\Users\Asus-1\OneDrive\Desktop
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
const int INF = 1e18;
const int N = 100001;
#define S(a) a.begin() , a.end()
#define pb push_back
#define READ(l , r , a) for(int i = l;i <= r;i++) cin >> a[i]
#define printV(l , r , a) for(int i = l;i <= r;i++) cout << a[i] << ' ';
#define pii pair < int , int >
#define FOR(i , l , r) for(int i = l;i <= r;i++)
int n , m , v , par[300001] , res[300001];
vector < int > G[300001] , F[300001];
bool vis[300001];
void dfs(int v , int p , int dis)
{
par[v] = p;
vis[v] = 1;
if(dis == n)
{
int cur = v , cur_res = n;
while(1){
res[v] = cur_res;
--cur_res;
if(cur_res == 0) break;
v = par[v];
}
}
for(int u : G[v]) if(!vis[u]) dfs(u , v , dis + 1);
}
bool used[300001];
void DFS(int v , int color)
{
used[v] = 1;
res[v] = color;
for(int u: F[v]) if(!used[u]) DFS(u , color);
}
signed main(){
ios_base::sync_with_stdio();
cin.tie(0);
cout.tie(0);
cin >> n >> m >> v;
for(int i = 1;i <= v;i++){
int x;
cin >> x;
char c;
cin >> c;
int y;
cin >> y;
if(c == '>') G[y].push_back(x);
else if(c == '<') G[x].push_back(y);
else
{
F[x].push_back(y);
F[y].push_back(x);
}
}
for(int i = 1;i <= m;i++)
{
for(int j = 1;j <= m;j++) vis[j] = 0 , par[j] = 0;
dfs(i , -1 , 1);
}
for(int i = 1;i <= m;i++)
{
if(res[i] != 0)
{
DFS(i , res[i]);
}
}
for(int i = 1;i <= m;i++)
{
if(res[i] == 0) cout << "?" << endl;
else cout << "K" << res[i] << endl;
}
cout << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |