Submission #393216

#TimeUsernameProblemLanguageResultExecution timeMemory
393216definitelynotmeeBoxes with souvenirs (IOI15_boxes)C++98
100 / 100
583 ms293944 KiB
#include <bits/stdc++.h> #define mp make_pair #define mt make_tuple #define ff first #define ss second using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; const ll INFL = (1LL<<62)-1; const int INF = (1<<30)-1; const int MAXN = 0; ll delivery (int n, int k, int l, int p[]){ vector<ll> respl(n), respr(n); for(int i = 0; i < n; i++){ respl[i] = p[i]*2; if(i-k >= 0){ respl[i]+=respl[i-k]; } } //cerr << 'a' << endl; for(int i = n-1; i >= 0; i--){ respr[i] = (l-p[i])*2; if(i+k < n){ respr[i]+= respr[i+k]; } } //cerr << 'a' << endl; ll resp = INFL; for(int i = 0; i <= n; i++){ // testando para não ter ciclo resp = min(resp, (i > 0? respl[i-1] : 0) + (i< n ? respr[i] : 0)); } //cerr << 'a' << endl; for(int i = 0; i < n; i++){ // intervalo vai de i até i+k-1 if(i+k > n) break; resp = min(resp, (i > 0? respl[i-1] : 0) + (i+k < n? respr[i+k] : 0) + l); } return resp; }
#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...