Submission #935697

#TimeUsernameProblemLanguageResultExecution timeMemory
935697zhasynBoxes with souvenirs (IOI15_boxes)C++14
10 / 100
3 ms356 KiB
#include <bits/stdc++.h> #define pb push_back #define pf push_front using namespace std; #define F first #define S second mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); typedef long long ll; #define pii pair <int, int> #define pll pair <ll, ll> typedef long double ld; const ll N = 3 * 1e5 + 10, M = 5000 + 10, inf = 1e18; const ll mod = 998244353; ll um(ll a, ll b){ return (1LL * a * b) % mod; } ll subr(ll a, ll b){ return ((1LL * a - b) % mod + mod) % mod; } ll delivery(int n, int k, int l, int pos[]){ // ((n + k - 1) / k) * l ll ans = ((n + k - 1) / k) * l, j = 0, cnt = 0, plus = 0, local = 0; while(j <= n){ ll cnt2 = 0, plus2 = 0, local2 = 0; if(j == n){ ans =min(ans, local + plus); } for(ll i = n - 1; i >= j; i--){ cnt2++; if(cnt2 == k){ cnt2 = plus2 = 0; local2 += (l - pos[i]) * 2; } else plus2 = (l - pos[i]) * 2; ans = min(ans, local + plus + local2 + plus2 + l * ((i - j + k - 1) / k)); //cout << local << " " << plus << " "<< local2 << " "<< plus2 << " "<< l * ((i - j + k - 1) / k) << endl; } cnt++; j++; if(cnt == k){ cnt = plus = 0; local += pos[j - 1] * 2; } else plus = pos[j - 1] * 2; } return ans; } // int main() { // ios::sync_with_stdio(false); // cin.tie(NULL); // //freopen("max.in", "r", stdin); // //freopen("max.out", "w", stdout); // int n, k, l; // cin >> n >> k >> l; // int pos[n]; // for(int i = 0; i < n; i++){ // cin >> pos[i]; // } // sort(pos, pos + n); // cout << delivery(n, k, l, pos); // 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...