제출 #286743

#제출 시각아이디문제언어결과실행 시간메모리
286743Marlov선물상자 (IOI15_boxes)C++14
0 / 100
1 ms384 KiB
/* Code by @marlov */ #include <iostream> #include <fstream> #include <string> #include <sstream> #include <vector> #include <string> #include <cmath> #include <algorithm> #include <iomanip> #include <utility> #include <set> #include <unordered_set> #include <map> #include <unordered_map> #include <stack> #include <queue> #include <iterator> using namespace std; typedef long long ll; typedef pair<int,int> pi; #define maxN 10000000 int dpfront[maxN],dpback[maxN]; int delivery(int N,int K,int L,int position[]){ int ci=0; while(position[ci]==0){ ci++; N--; } int pos[N]; for(int i=ci;i<N;i++){ pos[i-ci]=position[i]; } for(int i=0;i<N;i++){ if(i<K) dpfront[i]=min(L,2*pos[i]); else dpfront[i]=min(L,2*pos[i])+dpfront[i-K]; } for(int i=0;i<N;i++){ if(i<K) dpback[i]=min(L,2*(L-pos[N-i-1])); else dpback[i]=min(L,2*(L-pos[N-i-1]))+dpback[N-i-1+K]; } int result=min(dpback[N],dpfront[N]); for(int i=1;i<N-1;i++){ result=max(dpfront[i]+dpback[N-i-1],result); } return result; } /* stuff you should look for * int overflow, array bounds * special cases (n=1,n=0?) * do smth instead of nothing and stay organized */
#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...