Submission #305302

# Submission time Handle Problem Language Result Execution time Memory
305302 2020-09-22T22:58:03 Z sofapuden Koala Game (APIO17_koala) C++14
37 / 100
148 ms 536 KB
#include "koala.h"
#include <bits/stdc++.h>

using namespace std;

int arr1[100], arr2[100];

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.
    memset(arr1,0,N);
    arr1[0] = 1;
    playRound(arr1, arr2);
    for(int i = 0; i < N; ++i){
		if(!arr2[i])return i;
	}
    return 0;
}

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.
    vector<int> go(N);
    iota(go.begin(),go.end(),0);
    int sz = go.size();
    while(sz != 1){
		for(int i = 0; i < N; ++i){
			arr1[i] = 0;
			arr2[i] = 0;
		}
		for(int i = 0; i < sz; ++i){
			arr1[go[i]] = W/sz;
		}
		playRound(arr1,arr2);
		go.clear();
		for(int i = 0; i < N; ++i){
			if(arr2[i] > arr1[i] && arr1[i] > 0)go.push_back(i);
		}
		sz = go.size();
	}
	return go[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.
    memset(arr1,0,N);
    arr1[0] = 4;
    arr1[1] = 4;
    playRound(arr1,arr2);
    if(arr2[0] <= 4 && arr2[1] <= 4){
		arr1[0] = 2;
		arr1[1] = 2;
		playRound(arr1,arr2);
		if(arr2[0] <= 2 && arr2[1] <= 2){
			arr1[0] = 1;
			arr1[1] = 1;
			playRound(arr1,arr2);
			return arr2[1] > arr2[0];
		}
		if(arr2[0] > 2 && arr2[1] > 2){
			arr1[0] = 3;
			arr1[1] = 3;
			playRound(arr1,arr2);
			return arr2[1] > arr2[0];
		}
		return arr2[1] > arr2[0];
		
	}	
    if(arr2[0] > 4 && arr2[1] > 4){
		arr1[0] = 8;
		arr1[1] = 8;
		playRound(arr1,arr2);
		if(arr2[0] <= 8 && arr2[1] <= 8){
			arr1[0] = 6;
			arr1[1] = 6;
			playRound(arr1,arr2);
			return arr2[1] > arr2[0];
		}
		return arr2[1] > arr2[0];
	}
		
	return arr2[1] > arr2[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 time Memory Grader output
1 Correct 7 ms 384 KB Output is correct
2 Correct 6 ms 384 KB Output is correct
3 Correct 7 ms 384 KB Output is correct
4 Correct 7 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 24 ms 288 KB Output is correct
2 Correct 20 ms 384 KB Output is correct
3 Correct 20 ms 308 KB Output is correct
4 Correct 19 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 98 ms 416 KB Output is correct
2 Correct 103 ms 384 KB Output is correct
3 Correct 91 ms 512 KB Output is correct
4 Correct 148 ms 536 KB Output is correct
5 Correct 97 ms 412 KB Output is correct
6 Correct 101 ms 404 KB Output is correct
7 Correct 104 ms 408 KB Output is correct
8 Correct 89 ms 360 KB Output is correct
9 Correct 102 ms 416 KB Output is correct
10 Correct 106 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 0 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -