Submission #1080124

#TimeUsernameProblemLanguageResultExecution timeMemory
1080124Faisal_SaqibStations (IOI20_stations)C++17
0 / 100
609 ms936 KiB
#include "stations.h" #include <vector> #include <bits/stdc++.h> using namespace std; // #define int long long const int N=1e3+100; const int M=1e3; vector<int> ma[N]; vector<int> labels; int val=1; void dfs(int x,int v,int p) { labels[x]=(v*M)+val; val++; for(auto y:ma[x]) { if(y==p)continue; dfs(y,v,x); } } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { labels.resize(n,0); for(int i=0;i<(n);i++)ma[i].clear(),labels[i]=i; for(int i=0;i<(n-1);i++) { ma[u[i]].push_back(v[i]); ma[v[i]].push_back(u[i]); } int mx=0; for(int i=0;i<n;i++) { int sz=ma[i].size(); mx=max(mx,sz); } for(int i=0;i<n;i++) { if(ma[i].size()==mx) { // cout<<"Starting "<<i<<endl; labels[i]=M; int cnt=0; for(auto j:ma[i]) { cnt++; val=1; dfs(j,cnt,i); } break; } } // for(auto j:labels) // { // cout<<j<<' '; // } // cout<<endl; return labels; } int find_next_station(int s, int t, std::vector<int> c) { int pp_t=t-1; if(pp_t%M==0)pp_t=M; if(s==pp_t) return t; // cout<<"AT "<<s<<' '<<t<<endl; int par_t=(t/M); int par_s=(s/M); // cout<<par_s<<' '<<par_t<<endl; if(par_s!=par_t) { int pp=s-1; if(pp%M==0)pp=M; return pp; } return s+1; }

Compilation message (stderr)

stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:37:18: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   37 |   if(ma[i].size()==mx)
      |      ~~~~~~~~~~~~^~~~
#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...