Submission #1292856

#TimeUsernameProblemLanguageResultExecution timeMemory
1292856ChuanChenPacking Biscuits (IOI20_biscuits)C++20
0 / 100
1096 ms960 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; //retorna qtd de y, t.q. podemos ter x pacotes somado y cada ll count_tastiness(ll x, vector<ll> a) { ll MAXA = 0; for(int k = a.size()-1; k >= 0; k--){ MAXA += a[k]*(1<<k); } if(x > MAXA) return 1ll; ll ans = 1; for(int y = 1; y <= MAXA/x; y++){ vector<ll> a_copy = a; priority_queue<int> pq; //tera x sacola de valor y for(int i = 1; i <= x; i++) pq.push(y); //cerr << "ysiz: " << pq.size() << endl; //retira sempre do maior bag pra encher for(int k = a_copy.size()-1; k >= 0; k--){ if(a_copy[k] == 0) continue; if(pq.empty()) break; int no = pq.top(); pq.pop(); //cerr << "k: " << k << endl; if((1<<k) <= no){ a_copy[k] --; //cerr << "usei " << (1<<k) << " para preencher " << no << endl; no -= (1<<k); } else{ pq.push(no); continue; } if(no>0) pq.push(no); if(a_copy[k] != 0) k++; } if(pq.empty()){ ans++; } } return ans; }
#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...