Submission #732609

#TimeUsernameProblemLanguageResultExecution timeMemory
732609SanguineChameleonKoala Game (APIO17_koala)C++17
37 / 100
76 ms448 KiB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;

int B[120];
int R[120];

int minValue(int N, int W) {
	// TODO: Implement Subtask 1 solution here.
	// You may leave this function unmodified if you are not attempting this
	// subtask.
	B[0] = 1;
	for (int i = 1; i < N; i++) {
		B[i] = 0;
	}
	playRound(B, R);
	for (int i = 0; i < N; i++) {
		if (R[i] <= B[i]) {
			return i;
		}
	}
	return -1;
}

int maxValue(int N, int W) {
	// TODO: Implement Subtask 2 solution here.
	// You may leave this function unmodified if you are not attempting this
	// subtask.
	int cnt = N;
	for (int i = 0; i < N; i++) {
		B[i] = 1;
	}
	while (cnt > 1) {
		for (int i = 0; i < N; i++) {
			if (B[i] == 1) {
				B[i] = W / cnt;
			}
		}
		playRound(B, R);
		cnt = 0;
		for (int i = 0; i < N; i++) {
			B[i] = (B[i] > 0 && R[i] > B[i]);
			cnt += B[i];
		}
	}
	for (int i = 0; i < N; i++) {
		if (B[i] == 1) {
			return i;
		}
	}
	return -1;
}

int greaterValue(int N, int W, int x, int y) {
	// TODO: Implement Subtask 3 solution here.
	// You may leave this function unmodified if you are not attempting this
	// subtask.
	vector<int> vals = {2, 4, 8};
	for (auto v: vals) {
		for (int i = 0; i < N; i++) {
			B[i] = 0;
		}
		B[x] = v;
		B[y] = v;
		playRound(B, R);
		if ((R[0] > B[0]) != (R[1] > B[1])) {
			if (R[0] > B[0]) {
				return 0;
			}
			else {
				return 1;
			}
		}
		else {
			if (v == 2 && R[0] <= B[0]) {
				return minValue(N, W) ^ 1;
			}
		}
	}
	return -1;
}

int greaterValue(int N, int W) {
	return greaterValue(N, W, 0, 1);
}

void allValues(int N, int W, int *P) {
	if (W == 2*N) {
		// TODO: Implement Subtask 4 solution here.
		// You may leave this block unmodified if you are not attempting this
		// subtask.
	} else {
		// TODO: Implement Subtask 5 solution here.
		// You may leave this block unmodified if you are not attempting this
		// subtask.
	}
}
#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...