Submission #1052287

#TimeUsernameProblemLanguageResultExecution timeMemory
1052287dozerPacking Biscuits (IOI20_biscuits)C++14
0 / 100
1 ms348 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; #define fileio() freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout) #define fastio() cin.tie(0), ios_base::sync_with_stdio(0) #define sp " " #define endl "\n" #define pii pair<int, int> #define st first #define nd second #define pb push_back #define ll long long #define LL node * 2 #define RR node * 2 + 1 #define N 65 const int modulo = 1e9 + 7; const ll M = 1e18; long long count_tastiness(long long x, vector<long long> a) { int n = a.size(); for (int i = 0; i < (int)a.size(); i++){ if (a[i] > x){ if (i < n - 1) a[i + 1] += (a[i] - x) / 2; else a.pb((a[i] - x) / 2); a[i] = a[i] - ((a[i] - x) / 2) * 2; } } int m = a.size(); vector<ll> pre(m); pre[0] = a[0]; for (int i = 1; i < m; i++){ pre[i] = pre[i - 1] + a[i] * (1LL<<i); } vector<ll> maks(m), dp(m, 0); for (int i = 0; i < m; i++) maks[i] = (pre[i] / x) + 1; for (int i = 0; i < m; i++){ dp[i] = 0; for (int j = i - 1; j >= 0; j--){ if (maks[i] >= (1LL<<(j + 1))) { //how do you know it will fit in a long long?? dp[i] += dp[j]; maks[i] -= (1LL<<(j + 1)); } } dp[i] += maks[i]; } return dp[m - 1]; } /* int main() { fileio(); int q; assert(scanf("%d", &q) == 1); vector<int> k(q); vector<long long> x(q); vector<vector<long long>> a(q); vector<long long> results(q); for (int t = 0; t < q; t++) { assert(scanf("%d%lld", &k[t], &x[t]) == 2); a[t] = vector<long long>(k[t]); for (int i = 0; i < k[t]; i++) { assert(scanf("%lld", &a[t][i]) == 1); } } fclose(stdin); for (int t = 0; t < q; t++) { results[t] = count_tastiness(x[t], a[t]); } for (int t = 0; t < q; t++) { printf("%lld\n", results[t]); } fclose(stdout); return 0; } */
#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...