제출 #467876

#제출 시각아이디문제언어결과실행 시간메모리
467876Karliver선물상자 (IOI15_boxes)C++14
100 / 100
588 ms293816 KiB
#include "boxes.h" #include <bits/stdc++.h> #define FIXED_FLOAT(x) std::fixed <<std::setprecision(20) << (x) #define all(v) (v).begin(), (v).end() using namespace std; #define forn(i,n) for (int i = 0; i < (n); ++i) #define rforn(i, n) for(int i = (n) - 1;i >= 0;--i) using ll = long long; int mod = (ll)1e9 + 7; #define PI acos(-1) typedef pair<int, int> pairs; const int INF = 1e9 + 1; const int N = 1e7 + 10; const double eps = 1e-7; template <class T> using V = vector<T>; template <class T> using VV = V<V<T>>; template <typename XPAX> void ckma(XPAX &x, XPAX y) { x = (x < y ? y : x); } template <typename XPAX> void ckmi(XPAX &x, XPAX y) { x = (x > y ? y : x); } ll dp[4][N]; ll delivery(int n, int k, int l, int p[]) { forn(i, n) { if(i < k) dp[1][i] = p[i] * 2; else dp[1][i] = dp[1][i - k] + min(p[i] * 2, l); } dp[2][n] = 0; rforn(i, n) { if(i + k - 1 > n - 1) dp[2][i] = (l - p[i]) * 2; else dp[2][i] = dp[2][i + k] + min(l, (l - p[i]) * 2); } ll ret = 1e18; forn(i, n) ckmi(ret, dp[1][i] + dp[2][i + 1]); ckmi(ret, dp[2][0]); ckmi(ret, dp[1][n - 1]); return ret; }
#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...