Submission #394836

# Submission time Handle Problem Language Result Execution time Memory
394836 2021-04-27T10:46:08 Z snasibov05 Packing Biscuits (IOI20_biscuits) C++14
0 / 100
1000 ms 332 KB
#include "biscuits.h"

#define int long long

using namespace std;

const int kmax = 65;
const int ymax = 1e5;

vector<int> getBinary(int n){
    vector<int> bin(kmax);
    int k = 0;
    while (n > 0){
        if (n % 2) bin[k] = 1;
        k++;
        n /= 2;
    }
    return bin;
}

bool possible(int x, int y, vector<int> avail){
    vector<int> bin = getBinary(y);

    for (int i = kmax-1; i >= 0; --i) {
        if (avail[i] < bin[i] * x) {
            if (i != 0) bin[i-1] += bin[i] * 2, avail[i-1] += avail[i] * 2;
            continue;
        }
        avail[i] -= bin[i] * x;
        bin[i] = 0;
        if (i != 0 && (1 << i) <= y) avail[i-1] += avail[i] * 2;
    }

    return bin[0] == 0;
}

int count_tastiness(int x, vector<int> a) {
    int ans = 0;

    vector<int> avail(kmax);
    for (int i = a.size()-1; i >= 0; --i) {
        avail[i] = a[i];
    }

    for (int i = 0; i <= ymax; ++i) {
        if (possible(x, i, avail)) ans++;
    }

	return ans;
}

# Verdict Execution time Memory Grader output
1 Incorrect 362 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 363 ms 324 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 323 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1095 ms 332 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 362 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -