제출 #818015

#제출 시각아이디문제언어결과실행 시간메모리
818015OAleksa동굴 (IOI13_cave)C++14
0 / 100
18 ms400 KiB
#include <bits/stdc++.h>
//#include "factories.h"
//#include "wall.h"
#include "cave.h"
#define f first
#define s second
using namespace std; 
// const int maxn = 5010;
// vector<int> kurac(maxn), kurac2(maxn), b(maxn);
// int n;
// int tryCombination(int a[]) {
	// int x = 1;
	// for(int i = 0;i < n;i++) {
		// if(kurac[b[i]] == a[b[i]])
			// ++x;
		// else
			// break;
	// }
	// if(x > n)
		// x = -1;
	// return x;
// }
// 
void exploreCave(int N) {
	int a[N], d[N];
	for(int i = 0;i < N;i++)
		a[i] = 0;
	for(int i = 0;i < N;i++)
		d[i] = -1;
	vector<int> vis(N);
   for(int i = 1;i <= N;i++) {
   	//trazim suprotno od o
   	int l = 0, r = N - 1;
   	int br = tryCombination(a);
   	int o = (br > i || br == -1);
   	while(l < r) {
   		int mid = (l + r) / 2;
   		for(int j = l;j <= mid;j++) {
   			if(!vis[j])
   				a[j] = !a[j];
   		}
   		br = tryCombination(a);
   		int o1 = (br > i || br == -1);
   		if(o != o1) 
   			r = mid;
   		else
   			l = mid + 1;
   		o = o1;
   	}
   	vis[l] = 1;
   	// if(o == 0)
   		// a[l] = !a[l];
   	d[l] = i - 1;
   }
   // for(int i = 0;i < N;i++)
   	// cout << a[i] << " ";
   // cout << endl;
   // for(int i = 0;i < N;i++)
   	// cout << d[i] << " ";
   answer(a, d);
}

// signed main()
// {
	// ios_base::sync_with_stdio(false);
	// cin.tie(0);
	// cout.tie(0);
	// int tt = 1;
	// //cin >> tt;
	// while(tt--) {
		// cin >> n;
		// for(int i = 0;i < n;i++)
			// cin >> kurac[i];
		// for(int i = 0;i < n;i++) {
			// cin >> kurac2[i];
			// b[kurac2[i]] = i;
		// }
		// exploreCave(n);
	// }
   // return 0;
// }
#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...