Submission #239450

#TimeUsernameProblemLanguageResultExecution timeMemory
239450kshitij_sodaniIzlet (COI19_izlet)C++17
43 / 100
698 ms74216 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t llo; #define mp make_pair #define pb push_back #define a first #define b second int dist[3001][3001]; int par[3001]; int find(int no){ if(par[no]==no){ return no; } par[no]=find(par[no]); return par[no]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int tt; cin>>tt; int n; cin>>n; for(int i=0;i<n;i++){ par[i]=i; for(int j=0;j<n;j++){ cin>>dist[i][j]; } } if(tt==1){ for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(dist[i][j]==1){ int x=find(i); int y=find(j); par[x]=y; } } } map<int,vector<int>> ss; for(int i=0;i<n;i++){ find(i); ss[par[i]].pb(i); } int col[n]; vector<pair<int,int>> ans; int co=2; int prev=-1; for(auto j:ss){ co=3-co; for(auto i:j.b){ col[i]=co; } for(int i=0;i<j.b.size()-1;i++){ ans.pb({j.b[i],j.b[i+1]}); } if(prev!=-1){ ans.pb({prev,j.b[0]}); } prev=j.b.back(); } for(int i=0;i<n;i++){ cout<<col[i]<<" "; } cout<<endl; for(auto j:ans){ cout<<j.a+1<<" "<<j.b+1<<endl; } } else if(tt==2){ int col[n]; col[0]=1; int cur=1; for(int i=1;i<n;i++){ int st=0; for(int j=i-1;j>=0;j--){ if(dist[i][j]==dist[i-1][j]){ st=1; col[i]=col[j]; break; } } if(st==0){ cur++; col[i]=cur; } } for(int i=0;i<n;i++){ cout<<col[i]<<" "; } cout<<endl; for(int i=0;i<n-1;i++){ cout<<i+1<<" "<<i+2<<endl; } } return 0; }

Compilation message (stderr)

izlet.cpp: In function 'int main()':
izlet.cpp:54:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int i=0;i<j.b.size()-1;i++){
                ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...