Submission #584727

#TimeUsernameProblemLanguageResultExecution timeMemory
584727kkkkkkkkCave (IOI13_cave)C++14
Compilation error
0 ms0 KiB

#include <bits/stdc++.h>
using namespace std;

const int MAXN = 5010;

int isDefined[MAXN],definedState[MAXN],whichNumber[MAXN],N;
int queryArray[MAXN];

int opens_kth(int got_ans,int target) //vrakja dali kje ja otvori vratata switchot
{
	if (got_ans == -1) //ako svite vrate sa otvoreni
	    return 1;
	return got_ans>target; //kje vrati 1 ako e otvorena vratata
}

void divide_and_conquer(int target,int left,int right,int known_color)
{
	if (left == right) //base case, ova e baraniot switch
	{
		isDefined[left] = 1;
		definedState[left] = known_color;
		whichNumber[left] = target;
		return;
	}

	memset(queryArray,0,sizeof(queryArray));
	int mid = (left + right)/2;
	for (int i = 0;i<N;i++) //u prvata polovina gi stava known_color, a u vtorata drugata boja
	{
		if (left <= i && i <= mid)
			queryArray[i] = known_color;
		else
			queryArray[i] = 1 ^ known_color;
	}
	for (int i = 0;i<N;i++) //gi stavamo tija sto vise gi znaemo
		if (isDefined[i]) 
		    queryArray[i]=definedState[i];

	int ans=tryCombination(queryArray);
	if (opens_kth(ans,target)) //ako ja otvara so plava
		divide_and_conquer(target,left,mid,known_color);
	else
		divide_and_conquer(target,mid+1,right,known_color);
}

int which_color(int target)
{
	memset(queryArray,0,sizeof(queryArray));
	for (int i = 0;i<N;i++) //dali ja imamo najdeno vrednosta
		if (isDefined[i]) 
		    queryArray[i] = definedState[i];
	
	int ans = tryCombination(queryArray); //sve sa plavi osven najdenite
	if (opens_kth(ans,target)) 
	    return 0;
	else 
	    return 1;
}

void exploreCave(int n) 
{
    N=n;
    for (int i=0;i<N;i++)
    {
    	int known_color = which_color(i);
    	divide_and_conquer(i,0,N-1,known_color);
    }

    answer(definedState,whichNumber);

}

Compilation message (stderr)

cave.cpp: In function 'void divide_and_conquer(int, int, int, int)':
cave.cpp:40:10: error: 'tryCombination' was not declared in this scope
   40 |  int ans=tryCombination(queryArray);
      |          ^~~~~~~~~~~~~~
cave.cpp: In function 'int which_color(int)':
cave.cpp:54:12: error: 'tryCombination' was not declared in this scope
   54 |  int ans = tryCombination(queryArray); //sve sa plavi osven najdenite
      |            ^~~~~~~~~~~~~~
cave.cpp: In function 'void exploreCave(int)':
cave.cpp:70:5: error: 'answer' was not declared in this scope
   70 |     answer(definedState,whichNumber);
      |     ^~~~~~