제출 #466047

#제출 시각아이디문제언어결과실행 시간메모리
466047bluePacking Biscuits (IOI20_biscuits)C++17
12 / 100
4 ms332 KiB
#include "biscuits.h" #include <vector> using namespace std; //x = number of people (p) //y = tastiness of each bag (i) void tle_assert(bool b) { if(!b) while(1); } long long solve(vector<int> B) { if(B.empty()) return 1; //Case 1 long long ans1 = 1; for(int i = 0; i < (int)B.size(); i++) ans1 *= 2; //Case 2 long long ans2; int pos2 = -1; for(int i = (int)B.size() - 1; i >= 0; i--) if(B[i] == 2) { pos2 = i; break; } if(pos2 == -1) ans2 = 0; else { B.resize(pos2); ans2 = solve(B); } return ans1 + ans2; } long long count_tastiness(long long x, vector<long long> a) { while((int)a.size() < 62) a.push_back(0); int k = (int)a.size(); for(int i = 0; i+1 < k; i++) { if(a[i] % 2 == 1) { long long M = (a[i]-1)/2; a[i+1] += M; a[i] -= 2*M; } else if(a[i] % 2 == 0 && a[i] > 2) { long long M = (a[i]-2)/2; a[i+1] += M; a[i] -= 2*M; } } vector<int> B; long long res = 1; for(int i = 0; i < k; i++) { if(a[i] == 0) { res *= solve(B); B.clear(); } else B.push_back(a[i]); } return res; }
#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...