# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
78937 | 2018-10-09T16:40:01 Z | bogdan10bos | Zalmoxis (BOI18_zalmoxis) | C++14 | 1000 ms | 68072 KB |
#include <bits/stdc++.h> using namespace std; //#define FILE_IO int N, K, M; int v[1000005]; vector<int> stv, add[1000005]; int printmore(int x, int need) { if(x == 0) { printf("%d ", x); return 0; } if(need == 0) { printf("%d ", x); return 0; } if(need == 1) { printf("%d %d", x - 1, x - 1); return 1; } need--; int lft = need / 2; int rgt = need - lft; int tot = printmore(x - 1, lft) + printmore(x - 1, rgt) + 1; return tot; } int main() { #ifdef FILE_IO freopen("1.in", "r", stdin); freopen("1.out", "w", stdout); #endif scanf("%d%d", &N, &K); for(int i = 1; i <= N; i++) scanf("%d", &v[i]); v[N + 1] = 30; stv.push_back(v[1]); for(int i = 2; i <= N; i++) { while(stv.back() < v[i]) { int val = stv.back(); stv.pop_back(); if(!stv.empty() && stv.back() == val) { stv.pop_back(); stv.push_back(val + 1); continue; } add[i - 1].push_back(val); M++; stv.push_back(val + 1); } while((int)stv.size() > 1) { int x = stv.back(); stv.pop_back(); int y = stv.back(); if(x == y) { stv.pop_back(); stv.push_back(x + 1); continue; } stv.push_back(x); break; } stv.push_back(v[i]); while((int)stv.size() > 1) { int x = stv.back(); stv.pop_back(); int y = stv.back(); if(x == y) { stv.pop_back(); stv.push_back(x + 1); continue; } stv.push_back(x); break; } } assert(M <= K); int more = K - M; for(int i = 1; i <= N; i++) { printf("%d ", v[i]); for(auto x: add[i]) { int pr = printmore(x, K - M); more -= pr; } } printf("\n"); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 232 ms | 31480 KB | Unexpected end of file - int32 expected |
2 | Incorrect | 242 ms | 33588 KB | Unexpected end of file - int32 expected |
3 | Incorrect | 233 ms | 35856 KB | Unexpected end of file - int32 expected |
4 | Incorrect | 287 ms | 37824 KB | Unexpected end of file - int32 expected |
5 | Incorrect | 237 ms | 39868 KB | Unexpected end of file - int32 expected |
6 | Incorrect | 232 ms | 41980 KB | Unexpected end of file - int32 expected |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 232 ms | 44024 KB | Expected EOF |
2 | Correct | 247 ms | 46128 KB | Output is correct |
3 | Incorrect | 233 ms | 48172 KB | Expected integer, but "04" found |
4 | Incorrect | 236 ms | 48336 KB | Expected EOF |
5 | Incorrect | 234 ms | 48336 KB | Expected EOF |
6 | Incorrect | 268 ms | 48336 KB | Expected EOF |
7 | Incorrect | 234 ms | 48336 KB | Unexpected end of file - int32 expected |
8 | Incorrect | 254 ms | 48344 KB | Expected EOF |
9 | Execution timed out | 1056 ms | 66920 KB | Time limit exceeded |
10 | Execution timed out | 1061 ms | 68072 KB | Time limit exceeded |
11 | Execution timed out | 1088 ms | 68072 KB | Time limit exceeded |
12 | Incorrect | 25 ms | 68072 KB | Unexpected end of file - int32 expected |
13 | Incorrect | 23 ms | 68072 KB | Unexpected end of file - int32 expected |
14 | Incorrect | 26 ms | 68072 KB | Unexpected end of file - int32 expected |