# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
83837 | 2018-11-11T11:09:32 Z | nikolapesic2802 | Karte (COCI18_karte) | C++14 | 940 ms | 52284 KB |
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back int main() { int n,k; scanf("%i %i",&n,&k); int t=k; multiset<int> karte; multiset<int,greater<int> > revkarte; revkarte.insert(-1); karte.insert(INT_MAX); for(int i=0;i<n;i++) { int a; scanf("%i",&a); karte.insert(a); revkarte.insert(a); } vector<int> choose; for(int i=0;i<n;i++) { //if(i!=0) //printf("Uzeo %i\n",choose[i-1]); if(k>n-i-1){ int b=*karte.begin(); choose.pb(b); karte.erase(karte.find(b)); revkarte.erase(revkarte.find(b)); k--; continue; } int a=*karte.lower_bound(k); if(a==k) { choose.pb(a); karte.erase(karte.find(k)); revkarte.erase(revkarte.find(k)); continue; } if(a==INT_MAX) { int b=*revkarte.upper_bound(k-1); if(b==-1) { karte.erase(karte.find(k-1)); revkarte.erase(revkarte.find(k-1)); choose.pb(k-1); k--; continue; } choose.pb(b); karte.erase(karte.find(b)); revkarte.erase(revkarte.find(b)); k--; continue; } multiset<int>::iterator it; it=karte.end(); it--; it--; a=*it; choose.pb(a); karte.erase(karte.find(a)); revkarte.erase(revkarte.find(a)); k--; } int tr=0; int cnt=0; for(int i=n-1;i>=0;i--) { //printf("%i ",choose[i]); if(choose[i]==tr) { continue; } cnt++; tr++; } if(cnt==t) { for(int i=0;i<n;i++) { printf("%i ",choose[i]); } } else { printf("-1"); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 252 KB | Output is correct |
2 | Correct | 2 ms | 500 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 500 KB | Output is correct |
2 | Correct | 2 ms | 500 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 516 KB | Output is correct |
2 | Incorrect | 2 ms | 516 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 544 KB | Output is correct |
2 | Incorrect | 3 ms | 544 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 672 KB | Output is correct |
2 | Correct | 3 ms | 716 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 736 KB | Output is correct |
2 | Incorrect | 4 ms | 736 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 752 KB | Output is correct |
2 | Correct | 4 ms | 768 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 161 ms | 11104 KB | Output is correct |
2 | Correct | 157 ms | 11104 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 383 ms | 21432 KB | Output is correct |
2 | Correct | 358 ms | 21432 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 940 ms | 52284 KB | Output is correct |
2 | Correct | 931 ms | 52284 KB | Output is correct |