답안 #221849

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
221849 2020-04-11T09:27:13 Z patrikpavic2 도서관 (JOI18_library) C++17
100 / 100
466 ms 504 KB
#include <cstdio>
#include <vector>
#include "library.h"

#define PB push_back

using namespace std;

typedef vector < int > vi;

int n;

bool provjeri(vi skp, int x){
	vi glp(n);
	for(int y : skp)
		glp[y] = 1;
	int ans1 = Query(glp);
	glp[x] = 1;
	int ans2 = Query(glp);
	return ans1 == ans2;
}

int pocetak(){
	vi glp(n);
	for(int i = 0;i < n;i++)
		glp[i] = 1;
	for(int i = 0;i < n;i++){
		glp[i] = 0;
		if(Query(glp) == 1)
			return i;
		glp[i] = 1;
	}
}

int nadi(vi skp,int x){
	int ret = -1;
	for(int i = 10;i >= 0;i--){
		if((ret + (1 << i)) >= (int)skp.size())
			continue;
		vi tmp;
		for(int j = 0;j <= (ret + (1 << i));j++)
			tmp.PB(skp[j]);
		if(!provjeri(tmp, x))
			ret += (1 << i);
	}
	return skp[ret + 1];
}

void Solve(int nn){
	if(nn == 1){
		Answer({1}); return;
	}
	n = nn;
	int st = pocetak();
	vi tren, ret;
	ret.PB(st); 
	for(int i = 0;i < n;i++)
		if(st != i) tren.PB(i);
	for(int i = 1;i < n;i++){
		ret.PB(nadi(tren, ret.back()));
		for(int j = 0;j < n - i;j++){
			if(tren[j] == ret.back()){
				tren.erase(tren.begin() + j);
				break;
			}
		}
	}
	for(int &x : ret) x++;
	Answer(ret);
}






Compilation message

library.cpp: In function 'int pocetak()':
library.cpp:33:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 256 KB # of queries: 2507
2 Correct 43 ms 384 KB # of queries: 2505
3 Correct 49 ms 384 KB # of queries: 2770
4 Correct 48 ms 256 KB # of queries: 2695
5 Correct 45 ms 384 KB # of queries: 2602
6 Correct 41 ms 256 KB # of queries: 2675
7 Correct 49 ms 384 KB # of queries: 2698
8 Correct 40 ms 256 KB # of queries: 2544
9 Correct 43 ms 384 KB # of queries: 2660
10 Correct 25 ms 256 KB # of queries: 1566
11 Correct 4 ms 256 KB # of queries: 0
12 Correct 4 ms 384 KB # of queries: 3
13 Correct 5 ms 256 KB # of queries: 8
14 Correct 4 ms 256 KB # of queries: 11
15 Correct 5 ms 256 KB # of queries: 89
16 Correct 7 ms 256 KB # of queries: 213
# 결과 실행 시간 메모리 Grader output
1 Correct 43 ms 256 KB # of queries: 2507
2 Correct 43 ms 384 KB # of queries: 2505
3 Correct 49 ms 384 KB # of queries: 2770
4 Correct 48 ms 256 KB # of queries: 2695
5 Correct 45 ms 384 KB # of queries: 2602
6 Correct 41 ms 256 KB # of queries: 2675
7 Correct 49 ms 384 KB # of queries: 2698
8 Correct 40 ms 256 KB # of queries: 2544
9 Correct 43 ms 384 KB # of queries: 2660
10 Correct 25 ms 256 KB # of queries: 1566
11 Correct 4 ms 256 KB # of queries: 0
12 Correct 4 ms 384 KB # of queries: 3
13 Correct 5 ms 256 KB # of queries: 8
14 Correct 4 ms 256 KB # of queries: 11
15 Correct 5 ms 256 KB # of queries: 89
16 Correct 7 ms 256 KB # of queries: 213
17 Correct 466 ms 384 KB # of queries: 18516
18 Correct 428 ms 384 KB # of queries: 17631
19 Correct 448 ms 384 KB # of queries: 17883
20 Correct 410 ms 376 KB # of queries: 16717
21 Correct 381 ms 384 KB # of queries: 15814
22 Correct 438 ms 384 KB # of queries: 18067
23 Correct 463 ms 384 KB # of queries: 17622
24 Correct 121 ms 384 KB # of queries: 8145
25 Correct 438 ms 504 KB # of queries: 17542
26 Correct 404 ms 384 KB # of queries: 16391
27 Correct 153 ms 384 KB # of queries: 8268
28 Correct 416 ms 384 KB # of queries: 17955
29 Correct 403 ms 376 KB # of queries: 17935
30 Correct 413 ms 412 KB # of queries: 17955