Submission #332036

#TimeUsernameProblemLanguageResultExecution timeMemory
332036shrek12357Cave (IOI13_cave)C++14
0 / 100
3 ms364 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <climits>
#include <cmath>
#include <fstream>
#include <queue>
#include <stack>
#include <bitset>
#include "cave.h"
using namespace std;
#define ll long long
//cin.tie(0);ios_base::sync_with_stdio(0); 

const int MAXN = 5005;

/*void exploreCave(int n) {
	int pos[MAXN];
	int ans[MAXN];
	for (int i = 0; i < n; i++) {
		pos[i] = 0;
		ans[i] = i;
	}
	int cnt = 0;
	while (true) {
		int num = tryCombination(pos);
		if (num == -1) {
			break;
		}
		cnt = num;
		pos[num] = (pos[num] + 1) % 2;
	}
	answer(pos, ans);
}*/

/*void exploreCave(int n) {
	int pos[MAXN];
	int ans[MAXN];
	for (int i = 0; i < n; i++) {
		ans[i] = -1;
		pos[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		pos[i] = 1;
		ans[i] = tryCombination(pos);
		pos[i] = 0;
	}
	answer(pos, ans);
}*/

void exploreCave(int n) {
	int pos[MAXN];
	int ans[MAXN];
	for (int i = 0; i < n; i++) {
		pos[i] = 0;
		ans[i] = -1;
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (ans[j] != -1) {
				continue;
			}
			pos[j] = 0;
			int n1 = tryCombination(pos);
			pos[j] = 1;
			int n2 = tryCombination(pos);
			if ((n1 == i && n2 != i) || (n1 != i && n2 == i)) {
				ans[j] = i;
				if (n1 == i) {
					pos[j] = 0;
				}
				else {
					pos[j] = 1;
				}
			}
		}
	}
	answer(pos, ans);
}
#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...