Submission #1031121

#TimeUsernameProblemLanguageResultExecution timeMemory
1031121happy_nodeStations (IOI20_stations)C++17
100 / 100
627 ms1304 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const int MX=1005; vector<int> adj[MX]; int cnt=0; vector<int> tin, tout, dep; void dfs(int v, int p) { tin[v]=cnt++; for(auto u:adj[v]) { if(u==p) continue; dep[u]=dep[v]+1; dfs(u,v); } tout[v]=cnt++; } std::vector<int> label(int N, int K, std::vector<int> u, std::vector<int> v) { for(int i=0;i<N;i++) adj[i].clear(); for(int i=0;i<N-1;i++) { adj[u[i]].push_back(v[i]); adj[v[i]].push_back(u[i]); } cnt=0; tin.assign(N,0); tout.assign(N,0); dep.assign(N,0); dfs(0,-1); vector<pair<int,int>> res; for(int i=0;i<N;i++) { if(dep[i]&1) res.push_back({tin[i],i}); else res.push_back({tout[i],i}); } sort(res.begin(),res.end()); vector<int> ans(N); for(int i=0;i<N;i++) ans[res[i].second]=i; return ans; } int find_next_station(int s, int t, std::vector<int> c) { bool ok=1; for(auto x:c) ok&=s<=x; if(ok) { // s itu tin int cur=s; for(int i=0;i+1<c.size();i++) { if(cur<t && t<=c[i]) { // c_i is tout return c[i]; } cur=c[i]; } return c.back(); } else { // s itu tout c.push_back(s); for(int i=1;i+1<c.size();i++) { if(c[i]<=t && t<c[i+1]) { return c[i]; } } return c[0]; } }

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:57:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |   for(int i=0;i+1<c.size();i++) {
      |               ~~~^~~~~~~~~
stations.cpp:66:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |   for(int i=1;i+1<c.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...