Submission #926796

# Submission time Handle Problem Language Result Execution time Memory
926796 2024-02-13T18:11:54 Z velislavgarkov Stations (IOI20_stations) C++14
0 / 100
1 ms 548 KB
#include "stations.h"
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int MAXN=1e3+10;
struct Number {
	int x;
	int ind;
	bool friend operator < (Number a, Number b) {
		return a.x<b.x;
	}
};
Number num[MAXN];
vector <int> ver[MAXN];
vector <int> ans;
int in[MAXN], out[MAXN], dep[MAXN];
int br;
void dfs(int x, int par) {
	in[x]=br;
	br++;
	for (auto i:ver[x]) {
		if (i==par) continue;
		dep[i]=dep[x]+1;
		dfs(i,x);
	}
	out[x]=br;
	br++;
	if (dep[x]%2==0) num[x].x=in[x];
	else num[x].x=out[x];
}
vector<int> label(int n, int k, vector<int> u, vector<int> v) {
	for (int i=0;i<n;i++) {
		if (!ver[i].empty()) ver[i].clear();
		num[i].ind=i;
	}
	for (int i=0;i<n-1;i++) {
		ver[u[i]].push_back(v[i]);
		ver[v[i]].push_back(u[i]);
	}
	dep[0]=br=0;
	dfs(0,-1);
	sort(num,num+n);
	ans.resize(n);
	for (int i=0;i<n;i++) ans[num[i].ind]=i;
	for (int i=0;i<n;i++) cout << ans[i] << ' ';
	cout << endl;
	return ans;
}

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

Compilation message

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:53:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |   for (int i=0;i<c.size();i++) {
      |                ~^~~~~~~~~
stations.cpp:59:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |   for (int i=0;i<c.size()-1;i++) {
      |                ~^~~~~~~~~~~
stations.cpp:66:17: 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<c.size();i++) {
      |                ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 480 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 548 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 480 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 476 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 0 ms 480 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -