Submission #466042

#TimeUsernameProblemLanguageResultExecution timeMemory
466042blue비스킷 담기 (IOI20_biscuits)C++17
0 / 100
2 ms332 KiB
#include "biscuits.h" #include <vector> using namespace std; //x = number of people (p) //y = tastiness of each bag (i) long long x; 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 x1, vector<long long> a) { x = x1; while((int)a.size() < 62) a.push_back(0); int k = (int)a.size(); for(int i = 0; i+1 < k; i++) { long long M = max(0LL, 2*(a[i] - (x+1))/2); a[i] -= M; a[i+1] += M/2; } 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...