Submission #393351

#TimeUsernameProblemLanguageResultExecution timeMemory
393351lightonStations (IOI20_stations)C++17
100 / 100
1059 ms784 KiB
#include "stations.h"
#include<bits/stdc++.h>
using namespace std;
int p = 1;
int chk[1001];
vector<int> vec[1001];
void dfs(int now , int d){
    if((d%2) == 0) chk[now] = p++;
    else chk[now] = 1;
    for(int i : vec[now]){
        if(!chk[i]) dfs(i,d+1);
    }
    if((d%2) == 1) chk[now] = p++;
}

vector<int> label(int n, int k, vector<int> u, vector<int> v) {
    vector<int> labels(n);
    p = 1;
    for(int i = 0; i<n; i++){
        chk[i] = 0;
        vec[i].clear();
    }
    for(int i = 0; i < u.size(); i++){
        vec[v[i]].push_back(u[i]);
        vec[u[i]].push_back(v[i]);
    }
	dfs(0,0);
	for (int i = 0; i < n; i++) {
		labels[i] = chk[i];
	}
	return labels;
}

int find_next_station(int s, int t, vector<int> c) {
	if(c[c.size()-1] < s){
        if(t > s) return c[0];
        if(t < c[0]) return c[0];
        return c[upper_bound(c.begin() , c.end() , t)-c.begin()-1];
	}
    else{
        if(t < s) return c[c.size()-1];
        if(t > c[c.size()-1]) return c[c.size()-1];
        return c[lower_bound(c.begin() , c.end() , t)-c.begin()];
    }
}

Compilation message (stderr)

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