Submission #44790

# Submission time Handle Problem Language Result Execution time Memory
44790 2018-04-06T13:15:26 Z tjd229 Library (JOI18_library) C++14
0 / 100
50 ms 644 KB
#include <cstdio>
#include <vector>

#include "library.h"
using namespace std;
bool use[2000];
vector<int> v1, v2;
int find(int left,int N){
	
	vector<int> M(N);
	int i;
	for (i = 0; i < v1.size(); i++) M[v1[i]] = 1;
	
	int a = Query(M);
	M[left] = 1;
	int b = Query(M);
	vector<int> *live, *erase;
	if (a == b) live = &v1, erase = &v2;
	else live = &v2, erase = &v1;
	if (live->size() == 1) return live->back();

	erase->clear();
	for (i = 0, b = live->size() / 2; i < b; i++){
		a = live->back();
		live->pop_back();
		erase->push_back(a);
	}	
	return find(left, N);
}
void Solve(int N)
{
	vector<int> M(N);
	vector<int> res;
	int i,j;
	int A;
	for (i = 0; i < N; i++) {
		M[i] = 1;
	}
	for (i = 0; i < N; i++){
		M[i] = 0;
		A = Query(M);
		if (A == 1){
			res.push_back(i + 1);
			use[i] = 1;
			break;
		}
		M[i] = 1;
	}
	int t = 1;
	for (i = 1; i < N; i++){
		t = 1;
		v1.clear();
		v2.clear();
		for (j = 0; j < N; j++){
			if (use[j]) continue;
			if (t) v1.push_back(j);
			else v2.push_back(j);
			t ^= 1;
		}
		if (i == N - 1){
			res.push_back(v1[0]+1);
			break;
		}
		int nxt = find(res.back()-1, N);
		
		//int nxt = 1;
		use[nxt] = 1;
		res.push_back(nxt+1);
	}

	Answer(res);
}

Compilation message

library.cpp: In function 'int find(int, int)':
library.cpp:12:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < v1.size(); i++) M[v1[i]] = 1;
              ~~^~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 39 ms 248 KB Output is correct
2 Correct 40 ms 308 KB Output is correct
3 Correct 37 ms 448 KB Output is correct
4 Correct 44 ms 588 KB Output is correct
5 Correct 40 ms 644 KB Output is correct
6 Correct 47 ms 644 KB Output is correct
7 Correct 45 ms 644 KB Output is correct
8 Correct 29 ms 644 KB Output is correct
9 Correct 50 ms 644 KB Output is correct
10 Correct 24 ms 644 KB Output is correct
11 Incorrect 2 ms 644 KB Wrong Answer [2]
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 39 ms 248 KB Output is correct
2 Correct 40 ms 308 KB Output is correct
3 Correct 37 ms 448 KB Output is correct
4 Correct 44 ms 588 KB Output is correct
5 Correct 40 ms 644 KB Output is correct
6 Correct 47 ms 644 KB Output is correct
7 Correct 45 ms 644 KB Output is correct
8 Correct 29 ms 644 KB Output is correct
9 Correct 50 ms 644 KB Output is correct
10 Correct 24 ms 644 KB Output is correct
11 Incorrect 2 ms 644 KB Wrong Answer [2]
12 Halted 0 ms 0 KB -