# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
49822 | 2018-06-03T10:53:22 Z | mra2322001 | K개의 묶음 (IZhO14_blocks) | C++14 | 10 ms | 8764 KB |
#include <bits/stdc++.h> #define f0(i, n) for(int i=(0); i<n; i++) #define f1(i, n) for(int i=(1); i<=n; i++) using namespace std; typedef long long ll; const int N = 100002; int n, a[N], k; ll f[N][102]; main(){ ios_base::sync_with_stdio(0); cin >> n >> k; stack <int> s; f1(i, n){ cin >> a[i]; while(s.size() && a[s.top()] <= a[i]) s.pop(); f1(j, k){ if(i >= j){ if(s.size()==0) f[i][j] = f[j - 1][j - 1] + a[i]; else{ if(s.top() >= j - 1) f[i][j] = f[s.top()][j - 1] + a[i]; else f[i][j] = f[j - 1][j - 1] + a[i]; } } } s.push(i); } cout << f[n][k]; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 376 KB | Output is correct |
2 | Incorrect | 3 ms | 524 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 636 KB | Output is correct |
2 | Incorrect | 3 ms | 688 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 692 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 10 ms | 8764 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |