# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
580449 | 2022-06-21T09:10:23 Z | 조영욱(#8357) | Uplifting Excursion (BOI22_vault) | C++17 | 3374 ms | 8120 KB |
#include <bits/stdc++.h> using namespace std; int m; long long l; int dp0[1000001]; int dp[1000001]; const int zero=500000; int arr[102]; typedef pair<int,int> P; int main(void) { scanf("%d %lld",&m,&l); if (l>zero||l<-zero) { printf("impossible"); return 0; } for(int i=1;i<=m*2+1;i++) { scanf("%d",&arr[i]); } for(int i=0;i<=zero*2;i++) { dp0[i]=-1e7; dp[i]=-1e7; } dp[zero]=0; for(int i=1;i<=m*2+1;i++) { if (i==m+1){ for(int j=0;j<=zero*2;j++) { dp[j]=dp[j]+arr[m+1]; } continue; } int val=abs(i-m-1); if (i<m+1) { for(int j=zero*2;j>zero*2-val;j--) { deque<P> dq; for(int k=j;k>=0;k-=val) { int now=dp[k]+k/val; while (!dq.empty()&&dq.back().second>k+arr[i]*val) { dq.pop_back(); } while (!dq.empty()&&dq.front().first<=now) { dq.pop_front(); } dq.push_front(P(now,k)); dp0[k]=max(dp0[k],dq.back().first-k/val); } } } else { for(int j=0;j<val;j++) { deque<P> dq; for(int k=j;k<=zero*2;k+=val) { int now=dp[k]-k/val; while (!dq.empty()&&dq.back().second<k-arr[i]*val) { dq.pop_back(); } while (!dq.empty()&&dq.front().first<=now) { dq.pop_front(); } dq.push_front(P(now,k)); dp0[k]=max(dp0[k],dq.back().first+k/val); } } } for(int j=0;j<=zero*2;j++) { dp[j]=dp0[j]; dp0[j]=-1e7; } } if (dp[zero+l]<0) { printf("impossible"); return 0; } printf("%d",dp[zero+l]); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 62 ms | 8104 KB | Output is correct |
2 | Correct | 93 ms | 8100 KB | Output is correct |
3 | Correct | 34 ms | 8020 KB | Output is correct |
4 | Correct | 346 ms | 8104 KB | Output is correct |
5 | Correct | 1 ms | 212 KB | Output is correct |
6 | Correct | 1613 ms | 8100 KB | Output is correct |
7 | Correct | 1644 ms | 8100 KB | Output is correct |
8 | Correct | 1441 ms | 8100 KB | Output is correct |
9 | Correct | 1863 ms | 8104 KB | Output is correct |
10 | Correct | 1691 ms | 8100 KB | Output is correct |
11 | Correct | 2107 ms | 8100 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 62 ms | 8104 KB | Output is correct |
2 | Correct | 93 ms | 8100 KB | Output is correct |
3 | Correct | 34 ms | 8020 KB | Output is correct |
4 | Correct | 346 ms | 8104 KB | Output is correct |
5 | Correct | 1 ms | 212 KB | Output is correct |
6 | Correct | 1613 ms | 8100 KB | Output is correct |
7 | Correct | 1644 ms | 8100 KB | Output is correct |
8 | Correct | 1441 ms | 8100 KB | Output is correct |
9 | Correct | 1863 ms | 8104 KB | Output is correct |
10 | Correct | 1691 ms | 8100 KB | Output is correct |
11 | Correct | 2107 ms | 8100 KB | Output is correct |
12 | Correct | 101 ms | 8064 KB | Output is correct |
13 | Correct | 102 ms | 8100 KB | Output is correct |
14 | Correct | 40 ms | 8120 KB | Output is correct |
15 | Correct | 295 ms | 8100 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 1596 ms | 8100 KB | Output is correct |
18 | Correct | 1827 ms | 8100 KB | Output is correct |
19 | Correct | 1802 ms | 8100 KB | Output is correct |
20 | Correct | 1734 ms | 8100 KB | Output is correct |
21 | Correct | 1668 ms | 8100 KB | Output is correct |
22 | Correct | 1966 ms | 8100 KB | Output is correct |
23 | Correct | 1 ms | 212 KB | Output is correct |
24 | Incorrect | 3374 ms | 8108 KB | Output isn't correct |
25 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 354 ms | 8104 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 354 ms | 8104 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 354 ms | 8104 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 62 ms | 8104 KB | Output is correct |
2 | Correct | 93 ms | 8100 KB | Output is correct |
3 | Correct | 34 ms | 8020 KB | Output is correct |
4 | Correct | 346 ms | 8104 KB | Output is correct |
5 | Correct | 1 ms | 212 KB | Output is correct |
6 | Correct | 1613 ms | 8100 KB | Output is correct |
7 | Correct | 1644 ms | 8100 KB | Output is correct |
8 | Correct | 1441 ms | 8100 KB | Output is correct |
9 | Correct | 1863 ms | 8104 KB | Output is correct |
10 | Correct | 1691 ms | 8100 KB | Output is correct |
11 | Correct | 2107 ms | 8100 KB | Output is correct |
12 | Correct | 354 ms | 8104 KB | Output is correct |
13 | Incorrect | 1 ms | 212 KB | Output isn't correct |
14 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 354 ms | 8104 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 62 ms | 8104 KB | Output is correct |
2 | Correct | 93 ms | 8100 KB | Output is correct |
3 | Correct | 34 ms | 8020 KB | Output is correct |
4 | Correct | 346 ms | 8104 KB | Output is correct |
5 | Correct | 1 ms | 212 KB | Output is correct |
6 | Correct | 1613 ms | 8100 KB | Output is correct |
7 | Correct | 1644 ms | 8100 KB | Output is correct |
8 | Correct | 1441 ms | 8100 KB | Output is correct |
9 | Correct | 1863 ms | 8104 KB | Output is correct |
10 | Correct | 1691 ms | 8100 KB | Output is correct |
11 | Correct | 2107 ms | 8100 KB | Output is correct |
12 | Correct | 101 ms | 8064 KB | Output is correct |
13 | Correct | 102 ms | 8100 KB | Output is correct |
14 | Correct | 40 ms | 8120 KB | Output is correct |
15 | Correct | 295 ms | 8100 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 1596 ms | 8100 KB | Output is correct |
18 | Correct | 1827 ms | 8100 KB | Output is correct |
19 | Correct | 1802 ms | 8100 KB | Output is correct |
20 | Correct | 1734 ms | 8100 KB | Output is correct |
21 | Correct | 1668 ms | 8100 KB | Output is correct |
22 | Correct | 1966 ms | 8100 KB | Output is correct |
23 | Correct | 1 ms | 212 KB | Output is correct |
24 | Incorrect | 3374 ms | 8108 KB | Output isn't correct |
25 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 354 ms | 8104 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 62 ms | 8104 KB | Output is correct |
2 | Correct | 93 ms | 8100 KB | Output is correct |
3 | Correct | 34 ms | 8020 KB | Output is correct |
4 | Correct | 346 ms | 8104 KB | Output is correct |
5 | Correct | 1 ms | 212 KB | Output is correct |
6 | Correct | 1613 ms | 8100 KB | Output is correct |
7 | Correct | 1644 ms | 8100 KB | Output is correct |
8 | Correct | 1441 ms | 8100 KB | Output is correct |
9 | Correct | 1863 ms | 8104 KB | Output is correct |
10 | Correct | 1691 ms | 8100 KB | Output is correct |
11 | Correct | 2107 ms | 8100 KB | Output is correct |
12 | Correct | 101 ms | 8064 KB | Output is correct |
13 | Correct | 102 ms | 8100 KB | Output is correct |
14 | Correct | 40 ms | 8120 KB | Output is correct |
15 | Correct | 295 ms | 8100 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 1596 ms | 8100 KB | Output is correct |
18 | Correct | 1827 ms | 8100 KB | Output is correct |
19 | Correct | 1802 ms | 8100 KB | Output is correct |
20 | Correct | 1734 ms | 8100 KB | Output is correct |
21 | Correct | 1668 ms | 8100 KB | Output is correct |
22 | Correct | 1966 ms | 8100 KB | Output is correct |
23 | Correct | 1 ms | 212 KB | Output is correct |
24 | Incorrect | 3374 ms | 8108 KB | Output isn't correct |
25 | Halted | 0 ms | 0 KB | - |