Submission #693250

#TimeUsernameProblemLanguageResultExecution timeMemory
693250NemanjaSo2005Stations (IOI20_stations)C++14
0 / 100
755 ms700 KiB
#include<bits/stdc++.h> #include "stations.h" #define ll long long using namespace std; int N,K,in[1005],out[1005],vrem=0; vector<int> stablo[1005],L; void dfs(int gde,int pret){ // cout<<gde<<" dfs "<<pret<<endl; in[gde]=vrem; vrem++; for(int i=0;i<stablo[gde].size();i++) if(stablo[gde][i]!=pret) dfs(stablo[gde][i],gde); out[gde]=vrem; return; } vector<int> label(int n,int k,vector<int> u,vector<int> v){ N=n; K=k; for(int i=0;i<N-1;i++){ stablo[u[i]].push_back(v[i]); stablo[v[i]].push_back(u[i]); } dfs(0,0); L.clear(); for(int i=0;i<N;i++){ // cout<<in[i]<<" "<<out[i]<<endl; L.push_back(in[i]*1000+out[i]); } vrem=0; for(int i=0;i<N;i++) stablo[i].clear(); return L; } struct slog{ int in,out; }niz[1005],tren,tar; bool isparent(slog a,slog b){ return a.in<b.in and a.out>=b.out; } int find_next_station(int s,int t,vector<int> c){ if(s==t) return t; N=c.size(); for(int i=0;i<N;i++){ niz[i].in=c[i]/1000; niz[i].out=c[i]%1000; } tar.in=t/1000; tar.out=t%1000; tren.in=s/1000; tren.out=s%1000; for(int i=0;i<N;i++) if(isparent(niz[i],tren)){ swap(niz[i],niz[N-1]); swap(c[i],c[N-1]); N--; break; } for(int i=0;i<N;i++) if(isparent(niz[i],tar)) return c[i]; return c[N-1]; }

Compilation message (stderr)

stations.cpp: In function 'void dfs(int, int)':
stations.cpp:11:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |    for(int i=0;i<stablo[gde].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...