Submission #1305735

#TimeUsernameProblemLanguageResultExecution timeMemory
1305735JohanCave (IOI13_cave)C++20
13 / 100
32 ms676 KiB
#include "cave.h"
#include "bits/stdc++.h"
using namespace std;
int f(vector < int > a){
	int n = (int)a.size();
	int s[n];
	for(int i = 0; i < n; i++)
		s[i] = a[i];
	return tryCombination(s);
}
void exploreCave(int n){
	vector < int > s(n, 1);
	int x = f(s);
	bool turn = (x >= 1);
	set < int > st;
	vector < pair < int , int > > y;
	int k = 10;
	while(y.size() != n && k--){
		for(int i = 0; i < n; i++){
			if(st.count(i) == 0){
				s[i] = turn;
			}
		}
		x = f(s);
		if(x == -1)x = n;
		for(int i = 0; i < n; i++){
			if(st.count(i) > 0)
				continue;
			s[i] = turn ^ 1;
			// cout << f(s) << "---\n";
			// for(auto i : s)cout << i << ' ';cout << endl;
			if(f(s) < x && f(s) != -1){
				// cout << i << '-' << x << "->turn:" << turn << endl;
				y.push_back({i, f(s)});
				st.insert(i);
			}
			s[i] = turn;
		}
		// cout << endl;
		turn ^= 1;
	}
	sort(y.begin(), y.end());
	int e[n], o[n], id1 = 0, id2 = 0;
	for(auto [idx, va] : y)e[id1++] = va;
	for(auto i : s)o[id2++] = i;
	answer(o, e);
}

// C:\Users\Kazim\Downloads\Desktop\cavee
// g++ cave.cpp grader.c -o main
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...