Submission #1131855

#TimeUsernameProblemLanguageResultExecution timeMemory
1131855t9unkubjBoxes with souvenirs (IOI15_boxes)C++20
100 / 100
384 ms274620 KiB
#include "boxes.h" #ifdef t9unkubj #include"debug.cpp" //#include"template_no_debug.h" #else #define dbg(...) 199958 #endif #undef _GLIBCXX_DEBUG #pragma GCC optimize("O3") using namespace std; #include<bits/stdc++.h> using ll=long long; using ull=unsigned long long; template<class T>using vc=vector<T>; template<class T>using vvc=vc<vc<T>>; #define rep(i,n) for(ll i=0;i<(ll)(n);i++) #define REP(i,j,n) for(ll i=(j);i<(ll)(n);i++) #define DREP(i,n,m) for(ll i=(n);i>=(m);i--) #define drep(i,n) for(ll i=((n)-1);i>=0;i--) #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() template<class T,class F> bool chmin(T &x, F y){ if(x>y){ x=y; return true; } return false; } template<class T, class F> bool chmax(T &x, F y){ if(x<y){ x=y; return true; } return false; } double pass_time=0; ll solve(int n,int k,int l,vc<int>p){ vc<ll>L(n+1),R(n+1); rep(i,n){ if(i+1-k>=0){ L[i+1]=L[i+1-k]+(p[i])*2; }else{ L[i+1]=p[i]*2; } } drep(i,n){ if(i+k<=n){ R[i]=R[i+k]+(l-p[i])*2; }else{ R[i]=(l-p[i])*2; } } dbg(L,R); ll ans=min(L.back(),R[0]); rep(i,n){ chmin(ans,(L[i]+R[i])); } rep(i,n-k+1){ chmin(ans,(L[i]+R[i+k]+l)); } return ans; } long long delivery(int N, int K, int L, int p[]) { vc<int>P(N); rep(i,N)P[i]=p[i]; return solve(N,K,L,P); } namespace judge{ void run(){ int n,k,l; cin>>n>>k>>l; vc<int>p(n); rep(i,n)cin>>p[i]; dbg(solve(n,k,l,p)); } }; //int main(){judge::ch();} //g++ graders/boxes.cpp -D t9unkubj
#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...