답안 #102798

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
102798 2019-03-27T14:42:32 Z brcode K개의 묶음 (IZhO14_blocks) C++14
53 / 100
8 ms 512 KB
#include <iostream>
#include <stack>
using namespace std;
const int MAXN = 1e5+5;
int arr[MAXN];
int dp[MAXN][110];
int main(){
    int n,k;
    cin>>n>>k;
    for(int i=0;i<=n;i++){
        for(int j=0;j<=k;j++){
            dp[j][i] = 1e9;
        }
    }
    dp[1][0] = 0;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
        
        dp[1][i] = 0;
        dp[1][i] =max(dp[1][i-1],arr[i]);
        
    }
    dp[1][0] = 1e9;
    for(int i=2;i<=k;i++){
        stack<int> s1,s2;
        for(int j=1;j<=n;j++){
            int tempdp = dp[i-1][j-1];
           
            while(s1.size() && s1.top()<arr[j]){
                tempdp = min(tempdp,s2.top());
                s1.pop();
                s2.pop();
            }
            if(s1.empty()||tempdp+arr[j]<s1.top()+s2.top()){
                s1.push(arr[j]);
                s2.push(tempdp);
               // cout<<arr[j]<<" "<<tempdp<<endl;
            }
            if(j>=i){
                dp[i][j] = s1.top()+s2.top();
                
                //cout<<dp[i][j]<<endl;
            }
        }
    }
    cout<<dp[k][n]<<endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 256 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 3 ms 256 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 256 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 256 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 256 KB Output is correct
14 Correct 2 ms 384 KB Output is correct
15 Correct 2 ms 300 KB Output is correct
16 Correct 3 ms 384 KB Output is correct
17 Correct 2 ms 304 KB Output is correct
18 Correct 2 ms 256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 256 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Correct 2 ms 256 KB Output is correct
8 Correct 3 ms 256 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 3 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 3 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 2 ms 256 KB Output is correct
15 Correct 2 ms 256 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 300 KB Output is correct
20 Correct 2 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 256 KB Output is correct
7 Correct 2 ms 256 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 2 ms 384 KB Output is correct
14 Correct 2 ms 384 KB Output is correct
15 Correct 2 ms 384 KB Output is correct
16 Correct 2 ms 384 KB Output is correct
17 Correct 2 ms 384 KB Output is correct
18 Correct 2 ms 384 KB Output is correct
19 Correct 2 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 8 ms 512 KB Output isn't correct
2 Halted 0 ms 0 KB -