Submission #1213145

#TimeUsernameProblemLanguageResultExecution timeMemory
1213145thelegendary08Packing Biscuits (IOI20_biscuits)C++17
21 / 100
1095 ms656 KiB
#include "biscuits.h" #include<bits/stdc++.h> #define pb push_back #define mp make_pair #define vi vector<int> #define f0r(i,n) for(int i = 0; i<n; i++) #define FOR(i, k, n) for(int i = k; i<n; i++) #define dout(x) cout<<x<<' '<<#x<<'\n'; #define vout(x) for(auto u : x)cout<<u<<' '; cout<<'\n'; #define vb vector<bool> using namespace std; long long count_tastiness(long long x, std::vector<long long> a) { int n = a.size(); if(x == 1){ long long cur = 1; long long ans = 1; long long mult = 1; f0r(i, n){ if(a[i] == 0){ if(cur != 1){ ans *= cur; cur = 1; mult = 1; } } else{ cur += mult * a[i]; mult *= 2; } } if(cur != 0){ ans *= cur; cur = 1; mult = 1; } return ans; } else{ long long sum = 0; f0r(i, n){ sum += a[i] * (1LL << i); } long long ans = 1; for(long long i = 1; i <= sum / x; i++){ vector<long long> tmp = a; bool ok = 1; f0r(j, x){ long long cur = i; for(int k = n - 1; k>=0; k--){ if((1LL << k) <= cur){ int cnt = min(tmp[k], cur / (1LL << k)); cur -= cnt * (1LL << k); tmp[k] -= cnt; } } if(cur != 0){ ok = 0; break; } } if(ok)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...