Submission #305000

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
3050002020-09-22 11:19:48PajarajaStations (IOI20_stations)C++17
100 / 100
1228 ms1280 KiB
#include "stations.h"
#include <bits/stdc++.h>
#define MAXN 1007
using namespace std;
static int lb[MAXN],t;
static vector<int> g[MAXN];
void dfs(int s,int f,int d)
{
if(!d) lb[s]=t++;
for(int i=0;i<g[s].size();i++) if(g[s][i]!=f) dfs(g[s][i],s,d^1);
if(d) lb[s]=t++;
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
for(int i=0;i<n-1;i++) g[u[i]].push_back(v[i]);
for(int i=0;i<n-1;i++) g[v[i]].push_back(u[i]);
dfs(0,0,0); t=0;
for(int i=0;i<n;i++) g[i].clear();
std::vector<int> labels(n);
for (int i = 0; i < n; i++) labels[i] = lb[i];
return labels;
}
int find_next_station(int s, int t, std::vector<int> c)
{
if(s<c[0])
{
sort(c.begin(),c.end());
vector<int> aux;
for(int i=0;i+1<c.size();i++) aux.push_back(c[i]);
if(c.size()==1) return c[0];
if(s==0) aux.push_back(c[c.size()-1]);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

stations.cpp: In function 'void dfs(int, int, int)':
stations.cpp:10:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i=0;i<g[s].size();i++) if(g[s][i]!=f) dfs(g[s][i],s,d^1);
      |                 ~^~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:28:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         for(int i=0;i+1<c.size();i++) aux.push_back(c[i]);
      |                     ~~~^~~~~~~~~
stations.cpp:32:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |         for(int i=1;i<aux.size();i++) if(t>aux[i-1] && t<=aux[i]) return aux[i];
      |                     ~^~~~~~~~~~~
stations.cpp:40:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for(int i=1;i<c.size();i++) aux.push_back(c[i]);
      |                     ~^~~~~~~~~
stations.cpp:41:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for(int i=0;i+1<aux.size();i++) if(t>=aux[i] && t<aux[i+1]) return aux[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...