Submission #1247580

#TimeUsernameProblemLanguageResultExecution timeMemory
1247580nikulidPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1096 ms320 KiB
#include <iostream>
#include "biscuits.h"
#include <vector>

using namespace std;

bool debug=0;
#define dout if(debug)cout

#define ll long long

ll count_tastiness(ll x, vector<ll> a) {
    int k=a.size();
    // subtask 1
    
    ll answer=0;
    bool works;
    vector<ll> b(k), r(k);
    for(int i=1; i<(1<<k); i++){
        // check if y=i is possible
        for(int j=0; j<k; j++){
            b[j] = a[j];
            r[j] = ((i%(1<<(j+1)))/(1<<(j)))*x;
            b[j] -= r[j];
        }
        if(debug && 1==0)
        {
            dout<<"for i="<<i<<", we have r as follows:\n";
            for(auto e:r)dout<<e<<" ";
            dout<<"\n";
        }
        works=true;
        for(int j=0; j<k; j++){
            if(b[j]<0){
                works=false;
                break;
            }
            b[j+1] += b[j]/2;
            b[j] %= 2;
        }
        if(works){
            answer++;
            dout<<"$ "<<i<<" is possible!\n";
        }
    }
    dout<<"final answer: "<<answer<<"\n";
	return answer;
}
#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...