Submission #114758

#TimeUsernameProblemLanguageResultExecution timeMemory
114758faustaadpSimurgh (IOI17_simurgh)C++17
0 / 100
2 ms384 KiB
#include "simurgh.h" #include<bits/stdc++.h> typedef long long ll; #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ll n,m,p[550],i,tim; ll X[125050]; ll Y[125050]; ll b[125050]; vector<int> r; vector<pair<ll,ll> > isi; ll car(ll aa) { if(p[aa]==aa) return aa; else return p[aa]=car(p[aa]); } void cek(ll aa) { vector<int> tan; ll ii; for(ii=0;ii<n;ii++)p[ii]=ii; for(ii=0;ii<r.size();ii++) if(ii!=aa) { p[car(X[r[ii]])]=car(Y[r[ii]]); tan.pb(r[ii]); } ll mi=tim,ya=0; for(ii=0;ii<m;ii++) if(car(X[ii])!=car(Y[ii])) { // cout<<aa<<" "<<ii<<"\n"; if(b[ii]) continue; b[ii]=1; tan.pb(ii); ll tom=count_common_roads(tan); isi.pb(mp(-tom,ii)); mi=min(mi,tom); tan.pop_back(); if(tom>mi) { // ya=1; break; } } // cout<<aa<<" "<<ya<<"\n"; //if(!ya) // return ; if(isi.empty()) return ; sort(isi.begin(),isi.end()); r[aa]=isi[0].se; tim=-isi[0].fi; } std::vector<int> find_roads(int N, std::vector<int> U, std::vector<int> V) { n=N; m=U.size(); for(i=0;i<m;i++) X[i]=U[i]; for(i=0;i<m;i++) Y[i]=V[i]; for(i=0;i<n;i++)p[i]=i; for(i=0;i<m;i++) if(car(U[i])!=car(V[i])) { p[car(U[i])]=car(V[i]); r.pb(i); } //while(1); tim=count_common_roads(r); for(i=0;i<r.size();i++) { isi.clear(); cek(i); //cout<<i<<" "<<r[i]<<"\n"; } //for(i=0;i<r.size();i++) return r; }

Compilation message (stderr)

simurgh.cpp: In function 'void cek(ll)':
simurgh.cpp:27:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(ii=0;ii<r.size();ii++)
           ~~^~~~~~~~~
simurgh.cpp:33:12: warning: unused variable 'ya' [-Wunused-variable]
  ll mi=tim,ya=0;
            ^~
simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:78:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(i=0;i<r.size();i++)
          ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...