Submission #846146

#TimeUsernameProblemLanguageResultExecution timeMemory
846146vjudge1KOVANICE (COI15_kovanice)C++17
50 / 100
129 ms13360 KiB
#ifndef Local
    #pragma GCC optimize("O3,unroll-loops")
    #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#endif
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
#define int long long
#define pb push_back
#define lim 300000
#define till 40001
// # of primes till 1e6 = 7e4
using namespace std;
using namespace __gnu_pbds;

typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
using pii = array<int,2>;

const int mod=1000000007ll;

unordered_map<int,int>parent;
int find(int i){
    if(parent[i]==i)return i;
    return parent[i]=find(parent[i]);
}
void unite(int i,int j){
    int x=find(i),y=find(j);
    parent[max(x,y)]=min(x,y);
}

void solve(){
    int n,m,v;
    cin>>n>>m>>v;
    parent[-1]=-1;
    parent[-2]=-2;
    for(int i=0;i<m;i++){
        parent[i]=i;
    }
    for(int i=0;i<v;i++){
        int x,y;
        char c;
        cin>>x>>c>>y;
        x--,y--;
        if(c=='<'){
            unite(x,-1);
            unite(y,-2);
        }
        if(c=='>'){
            unite(x,-2);
            unite(y,-1);
        }
        if(c=='='){
            unite(x,y);
        }
    }
    for(int i=0;i<m;i++){
        if(find(i)==-1){
            cout<<"K1\n";
        }
        else if(find(i)==-2){
            cout<<"K2\n";
        } else{
            cout<<"?\n";
        }
    }
}


signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
#ifdef Local  
#ifndef INTERACTIVE
    freopen("in","r",stdin);
#endif
    freopen("out","w",stdout);
#endif
    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...