Submission #200800

#TimeUsernameProblemLanguageResultExecution timeMemory
200800gs14004Koala Game (APIO17_koala)C++17
19 / 100
23 ms380 KiB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;
int B[MAXN], R[MAXN];

int minValue(int N, int W) {
	B[0] = 1;
	playRound(B, R);
	if(count(R, R + N, 0) == 0) return 0;
	return find(R, R + N, 0) - R;
}

bool good[MAXN];

int maxValue(int N, int W) {
	fill(good, good + N, 1);
	for(int i=0; i<N; i++) B[i] = 1;
	playRound(B, R);
	for(int i=0; i<N; i++){
		if(R[i] > B[i]) good[i] = 1;
		else good[i] = 0;
	}
	for(int i=0; i<N; i++){
		if(good[i]) B[i] = 2;
		else B[i] = 0;
	}
	playRound(B, R);
	vector<int> up1, up2;
	for(int i=0; i<N; i++){
		if(!good[i]) continue;
		if(B[i] < R[i]) up1.push_back(i);
		else up2.push_back(i);
	}
	memset(B, 0, sizeof(B));
	for(auto &i : up1) B[i] = 3;
	for(auto &i : up2) B[i] = 1;
	playRound(B, R);
	memset(good, 0, sizeof(good));
	memset(B, 0, sizeof(B));
	for(auto &i : up1){
		if(3 < R[i]) B[i] = 16;
	}
	playRound(B, R);
	for(auto &i : up1){
		if(B[i] == 16 && R[i] > B[i]) return i;
	}
	assert(0);
}

int greaterValue(int N, int W) {
    // TODO: Implement Subtask 3 solution here.
    // You may leave this function unmodified if you are not attempting this
    // subtask.
    return 0;
}

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...