제출 #233376

#제출 시각아이디문제언어결과실행 시간메모리
233376topovikIzlet (COI19_izlet)C++14
0 / 100
1884 ms53664 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define f first #define s second #define pb push_back #define INF 1000000000 #define N (long)1e5+2 using namespace std; typedef long long ll; typedef long double ld; vector <vector <int> > gr; vector <vector <int> > a1; int n; int pred[N]; int r[N]; int ans[N]; int a[3000][3000]; int Set(int x) { if (pred[x]==x) return x; else return pred[x]=Set(pred[x]); } void unite(int x, int y) { if (r[x]>r[y]) pred[y]=x; else { pred[x]=y; if (r[x]==r[y]) r[y]++; } } void Check() { bool mrk[n]; for (int i=0; i<n; i++) mrk[i]=0; for (int i=0; i<n; i++) if (pred[i]==i) mrk[i]=1; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) if (i!=j && mrk[i] && mrk[j] && a[i][j]==2) a1[i].pb(j),a1[j].pb(i); } int main() { cin>>n; cin>>n; gr.resize(n); for (int i=0; i<n; i++) for (int j=0; j<n; j++) cin>>a[i][j]; int mx=0; for (int i=0; i<n; i++) for (int j=0; j<n; j++) mx=max(mx,a[i][j]); if (mx<3) { vector <pair<int,pair<int,int> > > qur; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) if (a[i][j]==1) qur.pb({a[i][j],{i,j}}); for (int i=0; i<n; i++) pred[i]=i,r[i]=0; vector <pair<int,int> > ans; for (int i=0; i<qur.size(); i++) if (Set(qur[i].s.f)!=Set(qur[i].s.s)) { int x=qur[i].s.f; int y=qur[i].s.s; ans.pb({x,y}); unite(Set(x),Set(y)); } int kol=0; int pr=-1; for (int i=0; i<n; i++) { cout<<(kol&1)+1<<" "; if (pred[i]==i) { kol++; if (pr!=-1) ans.pb({pr,i}); pr=i; } } cout<<endl; for (int i=0; i<n-1; i++) cout<<ans[i].f+1<<" "<<ans[i].s+1<<endl; return 0; } int ans[n]; ans[0]=1; int uniq=1; for (int i=1; i<n; i++) { bool g=1; for (int j=i-1; j>=0; j--) if (a[j][i-1]==a[j][i]) {g=0;ans[i]=ans[j];break;} if (g) ans[i]=++uniq; } for (int i=0; i<n; i++) cout<<ans[i]<<" "; cout<<endl; for (int i=0; i<n-1; i++) cout<<i+1<<" "<<i+2<<"\n"; }

컴파일 시 표준 에러 (stderr) 메시지

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