Submission #1260232

#TimeUsernameProblemLanguageResultExecution timeMemory
1260232Seyyed_Mojtaba_MortazaviKoala Game (APIO17_koala)C++20
47 / 100
35 ms464 KiB
#include "koala.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 1e2;

int W;
int B[MAXN];
int R[MAXN];

int minValue(int n, int w)
{
	memset(B, 0, sizeof(B));
	B[0] = 1;
	playRound(B, R);
	for (int i = 0; i < n; i++)
	{
		if (B[i] >= R[i])
			return i;
	}
}

int maxValue(int n, int w)
{
	vector <int> mx;
	for (int i = 0; i < n; i++)
		mx.push_back(i);
	while (mx.size() > 1)
	{
		memset(B, 0, sizeof(B));
		int tmp = w / mx.size();
		for (auto i : mx)
			B[i] = tmp;
		playRound(B, R);
		mx.clear();
		for (int i = 0; i < n; i++)
		{
			if (R[i] > tmp)
				mx.push_back(i);
		}
	}
	return mx[0];
}

int greaterValue(int n, int w)
{
	memset(B, 0, sizeof(B));
	int l = 0, r = 10;
	while (r - l > 1)
	{
		int mid = (l + r) >> 1;
		B[0] = B[1] = mid;
		playRound(B, R);
		if (R[0] > B[0] && R[1] > B[1])
			l = mid;
		else if (R[0] <= B[0] && R[1] <= B[1])
			r = mid;
		else
			return R[0] < R[1];
	}
	B[0] = B[1] = r;
	playRound(B, R);
	return R[0] < R[1];
}

bool cmp(int x, int y)
{
	memset(B, 0, sizeof(B));
	B[x] = B[y] = W;
	playRound(B, R);
	return R[x] < R[y];
}

void Sort(int l, int r, vector <int> &arr)
{
	if (l + 1 == r)
		return;
	int mid = (l + r) >> 1;
	Sort(l, mid, arr);
	Sort(mid, r, arr);
	int itl = l, itr = mid;
	vector <int> tmp;
	while (itl < mid && itr < r)
	{
		if (cmp(arr[itl], arr[itr]))
			tmp.push_back(arr[itl++]);
		else
			tmp.push_back(arr[itr++]);
	}
	while (itl < mid)
		tmp.push_back(arr[itl++]);
	while (itr < r)
		tmp.push_back(arr[itr++]);
	for (int i = l; i < r; i++)
		arr[i] = tmp[i - l];
}

void allValues(int n, int w, int *p)
{
	W = w / 2;
	vector <int> ord;
	for (int i = 0; i < n; i++)
		ord.push_back(i);
	Sort(0, n, ord);
	for (int i = 0; i < n; i++)
		p[ord[i]] = i + 1;
}

Compilation message (stderr)

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:22:1: warning: control reaches end of non-void function [-Wreturn-type]
   22 | }
      | ^
#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...