Submission #1318220

#TimeUsernameProblemLanguageResultExecution timeMemory
1318220ElayV13KOVANICE (COI15_kovanice)C++20
10 / 100
2094 ms27040 KiB
//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];
		}
		return;
	}
	for(int u : G[v])
	{
		if(vis[u]) continue;
		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;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...