Submission #168766

# Submission time Handle Problem Language Result Execution time Memory
168766 2019-12-16T04:54:20 Z NHDanDz K blocks (IZhO14_blocks) C++14
0 / 100
45 ms 41592 KB
/// NHDanDz
#include <bits/stdc++.h>
#define nmax 100005
#define F first
#define S second
#define PB push_back
#define PF push_front
#define ll long long
//#define int ll
#define RyoLoveHentai "blocks"
#define pii pair<int,int>
#define reset(a) memset(a,0,sizeof(a))
using namespace std;
int n , k , a[nmax] , d[105][nmax];
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    memset(d, 0x3f, sizeof d);
    d[1][0] = 0;
    for(int i = 1; i <= n ; i++)
        d[1][i] = max(d[1][i - 1] , a[i]);
    for(int i = 2; i <= k; i++)
    {
        stack <pii> S;
        for(int j = i; j <= n; j++)
        {
            int MIN = d[i - 1][j - 1];
            //cout << MIN << " ";
            while(!S.empty() && a[S.top().S] <= a[j])
            {
                MIN = min(MIN , S.top().F);
                S.pop();
            }
            d[i][j] = min(d[i][S.empty() ? 0 : S.top().second] , MIN + a[j]);
            //cout << (S.size() ? S.top().S : 0) << " ";
            S.push({MIN , i});
        }
        //cout << endl;
    }
    cout << d[k][n];
    return 0;
}

# Verdict Execution time Memory Grader output
1 Correct 40 ms 41464 KB Output is correct
2 Correct 40 ms 41592 KB Output is correct
3 Correct 35 ms 41464 KB Output is correct
4 Correct 35 ms 41464 KB Output is correct
5 Correct 35 ms 41416 KB Output is correct
6 Correct 40 ms 41464 KB Output is correct
7 Correct 35 ms 41464 KB Output is correct
8 Correct 35 ms 41464 KB Output is correct
9 Correct 41 ms 41464 KB Output is correct
10 Correct 40 ms 41464 KB Output is correct
11 Correct 35 ms 41424 KB Output is correct
12 Correct 45 ms 41464 KB Output is correct
13 Incorrect 35 ms 41520 KB Output isn't correct
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 35 ms 41464 KB Output is correct
2 Correct 34 ms 41464 KB Output is correct
3 Correct 35 ms 41472 KB Output is correct
4 Correct 35 ms 41464 KB Output is correct
5 Correct 35 ms 41464 KB Output is correct
6 Correct 38 ms 41380 KB Output is correct
7 Correct 35 ms 41464 KB Output is correct
8 Correct 35 ms 41464 KB Output is correct
9 Correct 35 ms 41464 KB Output is correct
10 Correct 35 ms 41464 KB Output is correct
11 Correct 35 ms 41464 KB Output is correct
12 Correct 35 ms 41436 KB Output is correct
13 Correct 35 ms 41464 KB Output is correct
14 Incorrect 35 ms 41464 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 41464 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 36 ms 41464 KB Output isn't correct
2 Halted 0 ms 0 KB -