Submission #336697

#TimeUsernameProblemLanguageResultExecution timeMemory
336697Vladth11Boxes with souvenirs (IOI15_boxes)C++14
50 / 100
52 ms19948 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define debug(x) cerr << #x << " " << x << "\n" #define debug_with_space(x) cerr << #x << " " << x << " " #include "boxes.h" using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef pair <ll, ll> pii; typedef pair <ll, pii> piii; typedef tree <pii, null_type, less <pii>, rb_tree_tag, tree_order_statistics_node_update> OST; const ll NMAX = 100001; const ll INF = (1LL << 60); const ll MOD = 1000000007; const ll BLOCK = 101; const ll nr_of_bits = 35; ll s1[NMAX], s2[NMAX]; ll delivery(int N, int K, int L, int p[]){ for(int i = 1; i <= N; i++){ if(i >= K){ s1[i] = s1[i - K] + min(p[i - 1] * 2, L); }else{ s1[i] = min(p[i - 1] * 2, L); } } for(int i = N; i >= 1; i--){ if(i <= N - K + 1){ s2[i] = s2[i + K] + min((L - p[i - 1]) * 2, L); }else{ s2[i] = min((L - p[i - 1]) * 2, L); } } ll maxim = INF; for(int i = 0; i <= N; i++){ maxim = min(maxim, s1[i] + s2[i + 1]); } return maxim; }
#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...