This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
long long a,b,c,d;
cin>>a>>b>>c;
string kel;
long long arr[b + 5];
vector <long long> es[b + 5];
queue <long long> que;
vector <long long> ana;
memset(arr,0,sizeof(arr));
string str[c + 5];
vector <pair <long long,long long> > adj[b + 5];
d=0;
for(long long i=0;b>i;i++){
es[i].push_back(i);
}
for(long long i=0;c>i;i++){
cin>>kel;
if(kel[1] == '='){
adj[kel[2] - '1'].push_back(make_pair(kel[0] - '1',0));
adj[kel[0] - '1'].push_back(make_pair(kel[2] - '1',0));
}
else{
adj[kel[2] - '1'].push_back(make_pair(kel[0] - '1',1));
arr[kel[0] - '1']++;
}
}
for(long long i=0;b>i;i++){
if(arr[i] == 0){
ana.push_back(i);
}
}
memset(arr,-1,sizeof(arr));
for(long long i=0;ana.size()>i;i++){
long long vis[b + 5];
memset(vis,0,sizeof(vis));
long long cakmaarr[b + 5];
memset(cakmaarr,-1,sizeof(cakmaarr));
que.push(ana[i]);
cakmaarr[ana[i]] = 0;
long long pivot,enb;
enb=0;
while(que.size()){
pivot = que.front();
que.pop();
if(vis[pivot] == 0){
vis[pivot] = 1;
for(long long j=0;adj[pivot].size()>j;j++){
if(vis[adj[pivot][j].first] == 0 ){
cakmaarr[adj[pivot][j].first] = cakmaarr[pivot] + adj[pivot][j].second;
if(enb < (cakmaarr[pivot] + adj[pivot][j].second)){
enb = cakmaarr[pivot] + adj[pivot][j].second;
}
que.push(adj[pivot][j].first);
}
}
}
}
if(a == (enb + 1)){
for(long long j=0;b>j;j++){
if(cakmaarr[j] != -1){
arr[j]=cakmaarr[j];
}
}
}
}
for(long long i=0;b>i;i++){
if(arr[i] != -1){
cout<<"K"<<a - arr[i]<<"\n";
}
else{
cout<<"?\n";
}
}
}
Compilation message (stderr)
kovanice.cpp: In function 'int main()':
kovanice.cpp:37:30: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
37 | for(long long i=0;ana.size()>i;i++){
| ~~~~~~~~~~^~
kovanice.cpp:52:39: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
52 | for(long long j=0;adj[pivot].size()>j;j++){
| ~~~~~~~~~~~~~~~~~^~
kovanice.cpp:6:18: warning: variable 'd' set but not used [-Wunused-but-set-variable]
6 | long long a,b,c,d;
| ^
# | 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... |