답안 #320499

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
320499 2020-11-08T21:28:26 Z Ambok 기지국 (IOI20_stations) C++14
0 / 100
948 ms 1176 KB
#include <bits/stdc++.h>
#include "stations.h"
using namespace std;
int coun=0; 
vector < vector <int> > vec(2000);
vector <int> L(2000);
void dfs (int x, int y, int h)
	{
		if (h%2==0) L[x]=coun;
		coun++;
		for (int i=0; i<vec[x].size(); i++)
		{
			if (vec[x][i]==y) continue;
			dfs(vec[x][i], x, h+1);
		}
		if (h%2==1) L[x]=coun;
		h--; coun++;
	}
vector <int> label(int n, int k, vector <int> u, vector <int> v)
{
	int s, h, i;
	L.resize(n);
	vec.resize(n);
	
	for (i=0; i<1000; i++)
	{
		vec[i].clear();
	}
	
	for (i=0; i<n-1; i++)
	{
		vec[u[i]].push_back(v[i]);
		vec[v[i]].push_back(u[i]);
	}
	
	L[0]=0; coun=0;
	dfs (0, -1, 0);
	return L;
}
int find_next_station(int s, int t, vector <int>c)
{
	int n=c.size(), i;
	int in[n+1], out[n+1];
	
	
    sort(c.begin(), c.end()); 
	
	if (n==1) return c[0];
	
	if (s==0)
	{
		in[n]=s;
		out[n]=c[n-1]+1;
		
		for (i=0; i<n; i++)
		out[i]=c[i];
		
		in[0]=s+1;
		for (i=1; i<n; i++)
		{
			in[i]=out[i-1]+1;
		}
		
		for (i=0; i<n; i++)
			{
				if (t>=in[i] && t<=out[i]) return c[i];
			}
	}
	
	if (s>c[n-1])
	{
		in[n]=c[1]-1;
		out[n]=s;
		
		for (i=0; i<n; i++)
		in[i]=c[i];
		
		for (i=1; i<n; i++)
		{
			out[i]=in[i+1]-1;
		}
	
		for (i=1; i<n; i++)
			{
				if (t>=in[i] && t<=out[i]) return c[i];
			}
		
		return c[0];
	}
	else 
	{
		in[n]=s;
		out[n]=c[n-2]+1;
		
		for (i=0; i<n; i++)
		out[i]=c[i];
		in[0]=s+1;
		for (i=1; i<n; i++)
		{
			in[i]=out[i-1]+1;
		}
		
		for (i=0; i<n-1; i++)
			{
				if (t>=in[i] && t<=out[i]) return c[i];
			}
	
		return c[n-1];	
	}
}

Compilation message

stations.cpp: In function 'void dfs(int, int, int)':
stations.cpp:11:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |   for (int i=0; i<vec[x].size(); i++)
      |                 ~^~~~~~~~~~~~~~
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)':
stations.cpp:21:6: warning: unused variable 's' [-Wunused-variable]
   21 |  int s, h, i;
      |      ^
stations.cpp:21:9: warning: unused variable 'h' [-Wunused-variable]
   21 |  int s, h, i;
      |         ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 492 KB Invalid labels (values out of range). scenario=2, k=1000, vertex=1, label=1990
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 632 KB Invalid labels (values out of range). scenario=0, k=1000, vertex=1, label=1022
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 589 ms 1176 KB Wrong query response.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 948 ms 912 KB Output is correct
2 Incorrect 696 ms 916 KB Wrong query response.
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 567 ms 1012 KB Wrong query response.
2 Halted 0 ms 0 KB -