이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
bin[i] = 0;
}
continue;
}
avail[i] -= bin[i] * x;
bin[i] = 0;
}
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 |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |