Submission #854192

#TimeUsernameProblemLanguageResultExecution timeMemory
854192nninStations (IOI20_stations)C++14
100 / 100
507 ms1556 KiB
#include "stations.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> tmp, adj[1005];
int num;

void dfs(int cur, int prev, bool mx) {
	if(!mx)  tmp[cur] = num++;
	for(int next:adj[cur]) {
		if(next==prev) continue;
		dfs(next, cur, !mx);
	}
	if(mx) tmp[cur] = num++;
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	std::vector<int> labels(n);
	tmp.resize(n);
	num = 0;
	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]);
	}
	dfs(0, -1, 0);
	for(int i=0;i<n;i++) labels[i] = tmp[i];
	return labels;
}

int find_next_station(int s, int t, std::vector<int> c) {
	if(s<c[0]) {
		if(t<s) return c[c.size()-1];
		for (int i=0;i<c.size()-1;i++) if(t<=c[i]) return c[i];
		return c[c.size()-1];
	} else {
		if(t>s) return c[0];
		for (int i=c.size()-1;i>=1;i--) if(t>=c[i]) return c[i];
		return c[0];
		
	}
}

Compilation message (stderr)

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