Submission #899035

#TimeUsernameProblemLanguageResultExecution timeMemory
899035oblantisBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
482 ms294024 KiB
#include "boxes.h" #include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define all(v) v.begin(), v.end() #define pb push_back #define ss second #define ff first #define vt vector using namespace std; //using namespace __gnu_pbds; typedef long long ll; typedef vector<int> vi; typedef vector<ll> vll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef pair<double, int> pdi; const ll inf = 1e18 + 10000; const int mod = 1e9+7; const int maxn = 1e5 + 12; long long delivery(int n, int k, int l, int p[]) { ll ret = inf; ll s[n + 1], pr[n + 1]; s[n] = pr[n] = 0; for(int i = n - 1; i >= 0; i--){ int x = p[i], y = p[min(i + k - 1, n - 1)]; s[i] = min({y * 2, (l - x) * 2, l}); s[i] += s[min(n, i + k)]; } ret = s[0]; for(int i = 0; i < n; i++){ int x = p[max(0, i - k + 1)], y = p[i]; pr[i] = min({y * 2, (l - x) * 2, l}); if(i >= k)pr[i] += pr[i - k]; ret = min(ret, pr[i] + s[i + 1]); } return ret; } //int main(){ //int n, k, l; //cin >> n >> k >> l; //int p[n]; //for(int i = 0; i < n; i++){ //cin >> p[i]; //} //cout << delivery(n, k, l, p); //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...
#Verdict Execution timeMemoryGrader output
Fetching results...