# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
125036 | 2019-07-04T12:28:06 Z | ansol4328 | 요리 강좌 (KOI17_cook) | C++11 | 633 ms | 74272 KB |
#include<stdio.h> #include<deque> #include<utility> #include<algorithm> using namespace std; typedef pair<int,int> P; int n, m, s, e, t; int xy[3005][3005], lst[3005]; int dp[3005][3005], sum[3005][3005]; deque<P> dq[3005]; P mval[3005][3]; const int INF=1e9; void set_mval(int idx) { mval[idx][0]=mval[idx][1]=mval[idx][2]=P(INF,INF); for(int i=1 ; i<=n ; i++) { if(mval[idx][0].first>dp[i][idx]) { mval[idx][2]=mval[idx][1]; mval[idx][1]=mval[idx][0]; mval[idx][0]=P(dp[i][idx],i); } else if(mval[idx][1].first>dp[i][idx]) { mval[idx][2]=mval[idx][1]; mval[idx][1]=P(dp[i][idx],i); } else if(mval[idx][2].first>dp[i][idx]) { mval[idx][2]=P(dp[i][idx],i); } } } int get_mval(int idx, int t) { if(lst[t]!=mval[idx][0].second && t!=mval[idx][0].second) return mval[idx][0].first; if(lst[t]!=mval[idx][1].second && t!=mval[idx][1].second) return mval[idx][1].first; return mval[idx][2].first; } int main() { scanf("%d %d %d %d %d",&n,&m,&s,&e,&t); for(int i=1 ; i<=n ; i++) { for(int j=1 ; j<=m ; j++) { scanf("%d",&xy[i][j]); sum[i][j]=xy[i][j]+sum[i][j-1]; dp[i][j]=INF; if(j>=s && j<=e) dp[i][j]=sum[i][j]; } } for(int i=1 ; i<=n ; i++) scanf("%d",&lst[i]); for(int i=1 ; i<=min(m,2*s) ; i++) set_mval(i); for(int j=2*s ; j<=m ; j++) { for(int i=1 ; i<=n ; i++) { P val=P(get_mval(j-s,i)-sum[i][j-s],j-s); while(!dq[i].empty() && dq[i].back().first>val.first) dq[i].pop_back(); dq[i].push_back(val); while(!dq[i].empty() && dq[i].front().second<j-e) dq[i].pop_front(); dp[i][j]=min(dp[i][j],dq[i][0].first+sum[i][j]+t); } set_mval(j); } for(int j=max(s,m-s+1) ; j<m ; j++) { for(int i=1 ; i<=n ; i++) { dp[i][m]=min(dp[i][m],get_mval(j,i)-sum[i][j]+sum[i][m]+t); } } int res=INF; for(int i=1 ; i<=n ; i++) res=min(res,dp[i][m]); printf("%d",res); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 3064 KB | Output is correct |
2 | Correct | 5 ms | 3064 KB | Output is correct |
3 | Correct | 5 ms | 2936 KB | Output is correct |
4 | Correct | 4 ms | 2680 KB | Output is correct |
5 | Correct | 5 ms | 3064 KB | Output is correct |
6 | Correct | 5 ms | 2936 KB | Output is correct |
7 | Correct | 4 ms | 2936 KB | Output is correct |
8 | Correct | 5 ms | 3064 KB | Output is correct |
9 | Correct | 5 ms | 3064 KB | Output is correct |
10 | Correct | 4 ms | 2684 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 3064 KB | Output is correct |
2 | Correct | 5 ms | 3064 KB | Output is correct |
3 | Correct | 5 ms | 2936 KB | Output is correct |
4 | Correct | 4 ms | 2680 KB | Output is correct |
5 | Correct | 5 ms | 3064 KB | Output is correct |
6 | Correct | 5 ms | 2936 KB | Output is correct |
7 | Correct | 4 ms | 2936 KB | Output is correct |
8 | Correct | 5 ms | 3064 KB | Output is correct |
9 | Correct | 5 ms | 3064 KB | Output is correct |
10 | Correct | 21 ms | 7544 KB | Output is correct |
11 | Correct | 17 ms | 7032 KB | Output is correct |
12 | Correct | 23 ms | 7544 KB | Output is correct |
13 | Correct | 18 ms | 7048 KB | Output is correct |
14 | Correct | 22 ms | 7516 KB | Output is correct |
15 | Correct | 22 ms | 7544 KB | Output is correct |
16 | Correct | 23 ms | 7544 KB | Output is correct |
17 | Correct | 15 ms | 5880 KB | Output is correct |
18 | Correct | 22 ms | 7508 KB | Output is correct |
19 | Correct | 16 ms | 5836 KB | Output is correct |
20 | Correct | 4 ms | 2684 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 3064 KB | Output is correct |
2 | Correct | 5 ms | 3064 KB | Output is correct |
3 | Correct | 5 ms | 2936 KB | Output is correct |
4 | Correct | 4 ms | 2680 KB | Output is correct |
5 | Correct | 5 ms | 3064 KB | Output is correct |
6 | Correct | 5 ms | 2936 KB | Output is correct |
7 | Correct | 4 ms | 2936 KB | Output is correct |
8 | Correct | 5 ms | 3064 KB | Output is correct |
9 | Correct | 5 ms | 3064 KB | Output is correct |
10 | Correct | 21 ms | 7544 KB | Output is correct |
11 | Correct | 17 ms | 7032 KB | Output is correct |
12 | Correct | 23 ms | 7544 KB | Output is correct |
13 | Correct | 18 ms | 7048 KB | Output is correct |
14 | Correct | 22 ms | 7516 KB | Output is correct |
15 | Correct | 22 ms | 7544 KB | Output is correct |
16 | Correct | 23 ms | 7544 KB | Output is correct |
17 | Correct | 15 ms | 5880 KB | Output is correct |
18 | Correct | 22 ms | 7508 KB | Output is correct |
19 | Correct | 16 ms | 5836 KB | Output is correct |
20 | Correct | 194 ms | 49936 KB | Output is correct |
21 | Correct | 214 ms | 49992 KB | Output is correct |
22 | Correct | 216 ms | 50200 KB | Output is correct |
23 | Correct | 187 ms | 49948 KB | Output is correct |
24 | Correct | 177 ms | 50036 KB | Output is correct |
25 | Correct | 217 ms | 50040 KB | Output is correct |
26 | Correct | 218 ms | 49912 KB | Output is correct |
27 | Correct | 191 ms | 49912 KB | Output is correct |
28 | Correct | 212 ms | 49968 KB | Output is correct |
29 | Correct | 177 ms | 50000 KB | Output is correct |
30 | Correct | 4 ms | 2684 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 3064 KB | Output is correct |
2 | Correct | 5 ms | 3064 KB | Output is correct |
3 | Correct | 5 ms | 2936 KB | Output is correct |
4 | Correct | 4 ms | 2680 KB | Output is correct |
5 | Correct | 5 ms | 3064 KB | Output is correct |
6 | Correct | 5 ms | 2936 KB | Output is correct |
7 | Correct | 4 ms | 2936 KB | Output is correct |
8 | Correct | 5 ms | 3064 KB | Output is correct |
9 | Correct | 5 ms | 3064 KB | Output is correct |
10 | Correct | 21 ms | 7544 KB | Output is correct |
11 | Correct | 17 ms | 7032 KB | Output is correct |
12 | Correct | 23 ms | 7544 KB | Output is correct |
13 | Correct | 18 ms | 7048 KB | Output is correct |
14 | Correct | 22 ms | 7516 KB | Output is correct |
15 | Correct | 22 ms | 7544 KB | Output is correct |
16 | Correct | 23 ms | 7544 KB | Output is correct |
17 | Correct | 15 ms | 5880 KB | Output is correct |
18 | Correct | 22 ms | 7508 KB | Output is correct |
19 | Correct | 16 ms | 5836 KB | Output is correct |
20 | Correct | 157 ms | 13908 KB | Output is correct |
21 | Correct | 161 ms | 13912 KB | Output is correct |
22 | Correct | 155 ms | 14044 KB | Output is correct |
23 | Correct | 139 ms | 13948 KB | Output is correct |
24 | Correct | 159 ms | 13872 KB | Output is correct |
25 | Correct | 145 ms | 13860 KB | Output is correct |
26 | Correct | 157 ms | 14000 KB | Output is correct |
27 | Correct | 155 ms | 13948 KB | Output is correct |
28 | Correct | 162 ms | 13920 KB | Output is correct |
29 | Correct | 144 ms | 13956 KB | Output is correct |
30 | Correct | 4 ms | 2684 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 3064 KB | Output is correct |
2 | Correct | 5 ms | 3064 KB | Output is correct |
3 | Correct | 5 ms | 2936 KB | Output is correct |
4 | Correct | 4 ms | 2680 KB | Output is correct |
5 | Correct | 5 ms | 3064 KB | Output is correct |
6 | Correct | 5 ms | 2936 KB | Output is correct |
7 | Correct | 4 ms | 2936 KB | Output is correct |
8 | Correct | 5 ms | 3064 KB | Output is correct |
9 | Correct | 5 ms | 3064 KB | Output is correct |
10 | Correct | 21 ms | 7544 KB | Output is correct |
11 | Correct | 17 ms | 7032 KB | Output is correct |
12 | Correct | 23 ms | 7544 KB | Output is correct |
13 | Correct | 18 ms | 7048 KB | Output is correct |
14 | Correct | 22 ms | 7516 KB | Output is correct |
15 | Correct | 22 ms | 7544 KB | Output is correct |
16 | Correct | 23 ms | 7544 KB | Output is correct |
17 | Correct | 15 ms | 5880 KB | Output is correct |
18 | Correct | 22 ms | 7508 KB | Output is correct |
19 | Correct | 16 ms | 5836 KB | Output is correct |
20 | Correct | 194 ms | 49936 KB | Output is correct |
21 | Correct | 214 ms | 49992 KB | Output is correct |
22 | Correct | 216 ms | 50200 KB | Output is correct |
23 | Correct | 187 ms | 49948 KB | Output is correct |
24 | Correct | 177 ms | 50036 KB | Output is correct |
25 | Correct | 217 ms | 50040 KB | Output is correct |
26 | Correct | 218 ms | 49912 KB | Output is correct |
27 | Correct | 191 ms | 49912 KB | Output is correct |
28 | Correct | 212 ms | 49968 KB | Output is correct |
29 | Correct | 177 ms | 50000 KB | Output is correct |
30 | Correct | 157 ms | 13908 KB | Output is correct |
31 | Correct | 161 ms | 13912 KB | Output is correct |
32 | Correct | 155 ms | 14044 KB | Output is correct |
33 | Correct | 139 ms | 13948 KB | Output is correct |
34 | Correct | 159 ms | 13872 KB | Output is correct |
35 | Correct | 145 ms | 13860 KB | Output is correct |
36 | Correct | 157 ms | 14000 KB | Output is correct |
37 | Correct | 155 ms | 13948 KB | Output is correct |
38 | Correct | 162 ms | 13920 KB | Output is correct |
39 | Correct | 144 ms | 13956 KB | Output is correct |
40 | Correct | 223 ms | 17424 KB | Output is correct |
41 | Correct | 564 ms | 38628 KB | Output is correct |
42 | Correct | 557 ms | 38520 KB | Output is correct |
43 | Correct | 633 ms | 74272 KB | Output is correct |
44 | Correct | 244 ms | 20604 KB | Output is correct |
45 | Correct | 287 ms | 24184 KB | Output is correct |
46 | Correct | 328 ms | 27796 KB | Output is correct |
47 | Correct | 411 ms | 34776 KB | Output is correct |
48 | Correct | 562 ms | 38264 KB | Output is correct |
49 | Correct | 566 ms | 38092 KB | Output is correct |
50 | Correct | 4 ms | 2684 KB | Output is correct |