# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
226507 | 2020-04-24T02:34:24 Z | Toirov_Sadi | Stove (JOI18_stove) | C++17 | 128 ms | 8052 KB |
#include<iostream> #include<set> #include<vector> #include<algorithm> using namespace std; const long long N = 1e5 + 7; const long long inf = 1e9 + 7; const long long mod = 1e9 + 7; int n; int k; int a[N]; set<pair<int, int>> s; vector<pair<int, pair<int, int>>> b; int main() { scanf("%d %d ", &n, &k); for(int i = 1; i <= n; i ++){ scanf(" %d", a + i); s.insert({i, i}); } if(n == 1){ printf("1\n"); return 0; } for(int i = 2; i <= n; i ++){ b.push_back({a[i] - a[i - 1] + 1, {i - 1, i}}); } sort(b.rbegin(), b.rend()); while(s.size() > k && !b.empty()){ auto y = s.lower_bound({b.back().second.second, b.back().second.second}); b.pop_back(); auto x = y; x --; if(x == s.end() || y == s.end()){ continue; } s.erase(x); s.erase(y); s.insert({x->first, y->second}); } long long res = 0; for(auto x: s){ res += (a[x.second] - a[x.first] + 1); } printf("%I64d", res); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 256 KB | Output is correct |
2 | Correct | 4 ms | 256 KB | Output is correct |
3 | Correct | 5 ms | 256 KB | Output is correct |
4 | Correct | 4 ms | 256 KB | Output is correct |
5 | Correct | 5 ms | 256 KB | Output is correct |
6 | Correct | 4 ms | 256 KB | Output is correct |
7 | Correct | 4 ms | 256 KB | Output is correct |
8 | Correct | 5 ms | 256 KB | Output is correct |
9 | Correct | 4 ms | 256 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 256 KB | Output is correct |
2 | Correct | 4 ms | 256 KB | Output is correct |
3 | Correct | 5 ms | 256 KB | Output is correct |
4 | Correct | 4 ms | 256 KB | Output is correct |
5 | Correct | 5 ms | 256 KB | Output is correct |
6 | Correct | 4 ms | 256 KB | Output is correct |
7 | Correct | 4 ms | 256 KB | Output is correct |
8 | Correct | 5 ms | 256 KB | Output is correct |
9 | Correct | 4 ms | 256 KB | Output is correct |
10 | Correct | 7 ms | 640 KB | Output is correct |
11 | Correct | 7 ms | 512 KB | Output is correct |
12 | Correct | 7 ms | 640 KB | Output is correct |
13 | Correct | 6 ms | 512 KB | Output is correct |
14 | Correct | 6 ms | 512 KB | Output is correct |
15 | Correct | 6 ms | 512 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 256 KB | Output is correct |
2 | Correct | 4 ms | 256 KB | Output is correct |
3 | Correct | 5 ms | 256 KB | Output is correct |
4 | Correct | 4 ms | 256 KB | Output is correct |
5 | Correct | 5 ms | 256 KB | Output is correct |
6 | Correct | 4 ms | 256 KB | Output is correct |
7 | Correct | 4 ms | 256 KB | Output is correct |
8 | Correct | 5 ms | 256 KB | Output is correct |
9 | Correct | 4 ms | 256 KB | Output is correct |
10 | Correct | 7 ms | 640 KB | Output is correct |
11 | Correct | 7 ms | 512 KB | Output is correct |
12 | Correct | 7 ms | 640 KB | Output is correct |
13 | Correct | 6 ms | 512 KB | Output is correct |
14 | Correct | 6 ms | 512 KB | Output is correct |
15 | Correct | 6 ms | 512 KB | Output is correct |
16 | Correct | 128 ms | 7024 KB | Output is correct |
17 | Correct | 112 ms | 8048 KB | Output is correct |
18 | Correct | 112 ms | 8048 KB | Output is correct |
19 | Correct | 112 ms | 8048 KB | Output is correct |
20 | Correct | 87 ms | 8052 KB | Output is correct |
21 | Correct | 66 ms | 8048 KB | Output is correct |
22 | Correct | 61 ms | 8048 KB | Output is correct |
23 | Correct | 59 ms | 8048 KB | Output is correct |
24 | Correct | 61 ms | 8048 KB | Output is correct |