제출 #336650

#제출 시각아이디문제언어결과실행 시간메모리
336650cheehengPacking Biscuits (IOI20_biscuits)C++14
21 / 100
1090 ms384 KiB
#include "biscuits.h" #include <bits/stdc++.h> using namespace std; long long b[65]; long long count_tastiness(long long x, std::vector<long long> a) { long long S = 0; int k = (int)a.size(); for(int i = 0; i < k; i ++){ S += (a[i]<<i); } if(x == 1){ for(int i = 0; i < k; i ++){ b[i] = a[i]; } long long ans2 = 1; long long val = 0; long long mult = 1; for(int i = 0; i < k; i ++){ val += a[i]*mult; if(val >= 2*mult-1){ mult <<= 1; }else{ ans2 *= (val+1); mult = 1; val = 0; } } ans2 *= (val+1); //printf("ans2=%lld\n", ans2); //assert(ans == ans2); return ans2; } long long ans = 1; for(long long y = 1; y <= S/x; y ++){ bool boleh = true; for(int j = 0; j < k; j ++){ b[j] = a[j]; } for(long long i = 0; i < x; i ++){ long long rem = y; for(int j = k-1; j >= 0; j --){ long long quotient = min(rem>>j, b[j]); b[j] -= quotient; rem -= (quotient << j); } if(rem != 0){ boleh = false; break; } } ans += boleh; } 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...