Submission #262909

# Submission time Handle Problem Language Result Execution time Memory
262909 2020-08-13T10:54:58 Z SorahISA Koala Game (APIO17_koala) C++11
37 / 100
135 ms 512 KB
#include "koala.h"
#include <bits/stdc++.h>
using namespace std;

// #define int long long
#define double long double
using pii = pair<int, int>;
template<typename T>
using prior = std::priority_queue<T, vector<T>, greater<T>>;
template<typename T>
using Prior = std::priority_queue<T>;

#define X first
#define Y second
#define ALL(x) (x).begin(), (x).end()
#define eb emplace_back
#define pb push_back
#define fastIO() ios_base::sync_with_stdio(false), cin.tie(0)

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.
    
    int play[N], ret[N];
    memset(play, 0x00, sizeof(play));
    
    play[0] = 1;
    playRound(play, ret);
    
    for (int i = 0; i < N; ++i) {
        if (ret[i] <= play[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.
    
    int play[N], ret[N];
    memset(play, 0x00, sizeof(play));
    
    set<int> test;
    for (int i = 0; i < N; ++i) play[i] = 1;
    playRound(play, ret);
    for (int i = 0; i < N; ++i) {
        if (ret[i] > play[i]) test.insert(i);
    }
    
    while (test.size() != 1) {
        int cookie = W / test.size();
        memset(play, 0x00, sizeof(play));
        for (auto x : test) play[x] = cookie;
        playRound(play, ret);
        
        vector<int> tmp;
        for (auto x : test) {
            if (ret[x] <= play[x]) tmp.eb(x);
        }
        for (auto x : tmp) test.erase(x);
    }
    
    return *test.begin();
}

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.
    
    int play[N], ret[N];
    memset(play, 0x00, sizeof(play));
    
    play[0] = play[1] = 3;
    playRound(play, ret);
    if (ret[0] != ret[1]) return ret[1] > ret[0];
    
    if (ret[0] == 0) {
        play[0] = play[1] = 1;
        playRound(play, ret);
        if (ret[0] != ret[1]) return ret[1] > ret[0];
        
        play[0] = play[1] = 2;
        playRound(play, ret);
        if (ret[0] != ret[1]) return ret[1] > ret[0];
    }
    else {
        play[0] = play[1] = 5;
        playRound(play, ret);
        if (ret[0] != ret[1]) return ret[1] > ret[0];
        
        play[0] = play[1] = 8;
        playRound(play, ret);
        if (ret[0] != ret[1]) return ret[1] > ret[0];
    }
    
    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 time Memory Grader output
1 Correct 6 ms 384 KB Output is correct
2 Correct 6 ms 384 KB Output is correct
3 Correct 6 ms 384 KB Output is correct
4 Correct 6 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 396 KB Output is correct
2 Correct 21 ms 384 KB Output is correct
3 Correct 23 ms 384 KB Output is correct
4 Correct 19 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 111 ms 504 KB Output is correct
2 Correct 116 ms 512 KB Output is correct
3 Correct 112 ms 384 KB Output is correct
4 Correct 135 ms 384 KB Output is correct
5 Correct 111 ms 384 KB Output is correct
6 Correct 118 ms 384 KB Output is correct
7 Correct 108 ms 396 KB Output is correct
8 Correct 112 ms 384 KB Output is correct
9 Correct 110 ms 384 KB Output is correct
10 Correct 109 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -