Submission #1082660

#TimeUsernameProblemLanguageResultExecution timeMemory
1082660aaaaaarrozPrisoner Challenge (IOI22_prison)C++17
0 / 100
0 ms352 KiB
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

vector<vector<int>> devise_strategy(int N) {
    // Determine the maximum number of bits required
    int bits_required = ceil(log2(N));
    
    // Calculate the maximum value x
    int x = 3 * bits_required - 1;

    // Initialize the strategy list
    vector<vector<int>> strategy(x + 1, vector<int>(N + 1));

    for (int i = 0; i <= x; ++i) {
        // Determine the bit position and state
        int bit_position = i / 3;
        int state = i % 3;

        if (state == 0) {
            // Check bit from bag A
            strategy[i][0] = 0;
            for (int j = 1; j <= N; ++j) {
                if ((j >> bit_position) & 1) {
                    strategy[i][j] = 3 * (bit_position + 1);
                } else {
                    strategy[i][j] = 3 * (bit_position + 1) + 1;
                }
            }
        } else if (state == 1) {
            // Check bit from bag B
            strategy[i][0] = 1;
            for (int j = 1; j <= N; ++j) {
                if ((j >> bit_position) & 1) {
                    strategy[i][j] = 3 * (bit_position + 1);
                } else {
                    strategy[i][j] = 3 * (bit_position + 1) + 1;
                }
            }
        } else if (state == 2) {
            // Compare and make a decision
            strategy[i][0] = 0; // Default bag A, adjust later
            for (int j = 1; j <= N; ++j) {
                if (j == N) {  // Assume decision making based on observed values
                    strategy[i][j] = -1; // Bag A has fewer coins
                } else {
                    strategy[i][j] = -2; // Bag B has fewer coins
                }
            }
        }
    }

    return strategy;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...