답안 #432753

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
432753 2021-06-18T13:08:16 Z Hazem 기지국 (IOI20_stations) C++14
36.2303 / 100
1018 ms 816 KB
#include "stations.h"
#include <vector>
#include <bits/stdc++.h>

using namespace std;

const int N = 2e3;
int cnt = 0;

int dfs(int i,int pre,vector<int> &ret,vector<int> adj[]){

	int mx = cnt;
	ret[i] = cnt++;
	
	for(int j=0;j<adj[i].size();j++){
		int v = adj[i][j];
		if(v==pre)continue;

		mx = max(mx,dfs(v,i,ret,adj));
	}
	ret[i] |= mx<<10;
	return mx;
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
	
	cnt = 0;
	vector<int>adj[N];
	for(int i=0;i<n-1;i++){
		adj[u[i]].push_back(v[i]);
		adj[v[i]].push_back(u[i]);
	}
	vector<int> ret = vector<int>(n,0);
	dfs(0,0,ret,adj);
	return ret;
}

int get_val(int x,int l,int r){

	int ret = 0;
	for(int i=l;i<=r;i++)
		ret |= (1<<(i-l))*(((1<<i)&x)>0);
	return ret;
}

bool cmp(int x,int y){

	return get_val(x,0,9)<get_val(y,0,9);
}

int find_next_station(int s, int t, std::vector<int> c) {
	
	int s1 = get_val(s,0,9);	int t1 = get_val(t,0,9);	
	sort(c.begin(),c.end(),cmp);
	
	if(t1<s1)
		return c[0];

	vector<int>vec;
	for(int i=1;i<c.size();i++)
		vec.push_back(get_val(c[i],0,9));

	vec.push_back(get_val(c.back(),10,19)+1);
	for(int i=0;i<(int)vec.size()-1;i++)
		if(t1>=vec[i]&&t1<vec[i+1])
			return c[i+1];
	return c[0];
}

Compilation message

stations.cpp: In function 'int dfs(int, int, std::vector<int>&, std::vector<int>*)':
stations.cpp:15:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for(int j=0;j<adj[i].size();j++){
      |              ~^~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:60:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  for(int i=1;i<c.size();i++)
      |              ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 452 KB Invalid labels (values out of range). scenario=0, k=1000, vertex=0, label=9216
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 7 ms 288 KB Invalid labels (values out of range). scenario=0, k=1000, vertex=0, label=1018880
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 464 KB Invalid labels (values out of range). scenario=1, k=1000000, vertex=0, label=1019904
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 863 ms 520 KB Output is correct
2 Correct 662 ms 484 KB Output is correct
3 Correct 609 ms 488 KB Output is correct
4 Correct 4 ms 596 KB Output is correct
5 Correct 5 ms 596 KB Output is correct
6 Correct 2 ms 596 KB Output is correct
7 Correct 616 ms 528 KB Output is correct
8 Correct 899 ms 484 KB Output is correct
9 Correct 678 ms 540 KB Output is correct
10 Correct 594 ms 528 KB Output is correct
11 Correct 6 ms 596 KB Output is correct
12 Correct 9 ms 596 KB Output is correct
13 Correct 5 ms 596 KB Output is correct
14 Correct 6 ms 592 KB Output is correct
15 Correct 2 ms 596 KB Output is correct
16 Correct 551 ms 528 KB Output is correct
17 Correct 538 ms 528 KB Output is correct
18 Correct 509 ms 528 KB Output is correct
19 Correct 595 ms 488 KB Output is correct
20 Correct 591 ms 584 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 600 ms 772 KB Partially correct
2 Partially correct 485 ms 636 KB Partially correct
3 Partially correct 1018 ms 480 KB Partially correct
4 Partially correct 708 ms 492 KB Partially correct
5 Partially correct 670 ms 504 KB Partially correct
6 Partially correct 497 ms 664 KB Partially correct
7 Partially correct 436 ms 616 KB Partially correct
8 Partially correct 2 ms 596 KB Partially correct
9 Partially correct 4 ms 596 KB Partially correct
10 Partially correct 2 ms 596 KB Partially correct
11 Partially correct 486 ms 512 KB Partially correct
12 Partially correct 516 ms 616 KB Partially correct
13 Partially correct 956 ms 476 KB Partially correct
14 Partially correct 674 ms 484 KB Partially correct
15 Partially correct 616 ms 528 KB Partially correct
16 Partially correct 463 ms 484 KB Partially correct
17 Partially correct 660 ms 488 KB Partially correct
18 Partially correct 480 ms 704 KB Partially correct
19 Partially correct 456 ms 668 KB Partially correct
20 Partially correct 497 ms 528 KB Partially correct
21 Partially correct 90 ms 532 KB Partially correct
22 Partially correct 102 ms 528 KB Partially correct
23 Partially correct 138 ms 528 KB Partially correct
24 Partially correct 6 ms 604 KB Partially correct
25 Partially correct 5 ms 596 KB Partially correct
26 Partially correct 6 ms 608 KB Partially correct
27 Partially correct 4 ms 604 KB Partially correct
28 Partially correct 2 ms 596 KB Partially correct
29 Partially correct 568 ms 484 KB Partially correct
30 Partially correct 522 ms 612 KB Partially correct
31 Partially correct 559 ms 532 KB Partially correct
32 Partially correct 481 ms 656 KB Partially correct
33 Partially correct 491 ms 528 KB Partially correct
34 Partially correct 319 ms 632 KB Partially correct
35 Partially correct 430 ms 772 KB Partially correct
36 Partially correct 460 ms 656 KB Partially correct
37 Partially correct 510 ms 608 KB Partially correct
38 Partially correct 478 ms 672 KB Partially correct
39 Partially correct 463 ms 616 KB Partially correct
40 Partially correct 440 ms 596 KB Partially correct
41 Partially correct 491 ms 816 KB Partially correct
42 Partially correct 80 ms 544 KB Partially correct
43 Partially correct 129 ms 528 KB Partially correct
44 Partially correct 145 ms 528 KB Partially correct
45 Partially correct 179 ms 484 KB Partially correct
46 Partially correct 315 ms 528 KB Partially correct
47 Partially correct 321 ms 708 KB Partially correct
48 Partially correct 115 ms 556 KB Partially correct
49 Partially correct 98 ms 528 KB Partially correct