Submission #321821

#TimeUsernameProblemLanguageResultExecution timeMemory
321821lukameladzeStations (IOI20_stations)C++14
0 / 100
15 ms14956 KiB
#include "stations.h" # include <bits/stdc++.h> using namespace std; long long lv[300005],tin,out[300005],in[300005],x[300005],tout; std::vector <long long> v1[300005]; std::vector <int> labels; vector < pair <long long, long long> >v2; void dfs(int a, int p) { lv[a]=lv[p]+1; tin++; in[a]=tin; for (int i=0; i<v1[a].size(); i++) { if (p!=v1[a][i]) { dfs(v1[a][i],a); } } tin++; out[a]=tin; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { for (int i=0; i<n-1; i++) { v1[u[i]].push_back(v[i]); v1[v[i]].push_back(u[i]); } dfs(0,-1); for (int i=0; i<n; i++) { if (lv[i]%2==1) { x[i]=in[i]; } else x[i]=out[i]; v2.push_back({x[i],i}); } sort(v2.begin(), v2.end()); for (int i=0; i<v2.size(); i++) { labels[v2[i].second]=i; } return labels; } int find_next_station(int s, int t, std::vector<int> c ) { if (c[0]<s) { for (int i=1; i<c.size()-1; i++) { tin=c[i]; tout=c[i+1]-1; if (tin>=t && tout<=t) return c[i]; } tin=c[c.size()-1]; tout=s-1; if (tin>=t && tout<=t) return c[c.size()-1]; return c[0]; } else { tin=s+1; tout=c[0]; if (tin>=t && tout<=t) return c[0]; for (int i=1; i<c.size()-1; i++) { tin=c[i-1]+1; tout=c[i]; if (tin>=t && tout<=t) return c[i]; } return c[c.size()-1]; } }

Compilation message (stderr)

stations.cpp: In function 'void dfs(int, int)':
stations.cpp:14:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for (int i=0; i<v1[a].size(); i++)
      |                   ~^~~~~~~~~~~~~
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:42:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |     for (int i=0; i<v2.size(); i++)
      |                   ~^~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:52:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |         for (int i=1; i<c.size()-1; i++)
      |                       ~^~~~~~~~~~~
stations.cpp:68:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |         for (int i=1; i<c.size()-1; 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...