답안 #486727

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
486727 2021-11-12T13:59:45 Z perchuts Karte (COCI18_karte) C++17
60 / 120
137 ms 6280 KB
#include <bits/stdc++.h>
#define maxn (int)(1e5+51)
#define all(x) x.begin(), x.end()
#define sz(x) (int) x.size()
#define endl '\n'
#define ll long long
#define ull unsigned long long
#define ii pair<int,int>
#define iii tuple<int,int,int>
#define inf (int)(2e9+1)
#define mod (int)(1e9+7)

using namespace std;

int v[5*maxn],ans[5*maxn];

set<int>cards;

int main() {
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        v[x]++;
        cards.insert(x);
    }

    for(int i=0;i<k;i++){
        set<int>::iterator it=cards.lower_bound(i+1);
        set<int>::iterator it2=cards.lower_bound(k+1);
        if(it2!=cards.end()){
            v[*it2]--;
            ans[i]=*it2;
            if(v[*it2]==0){
                cards.erase(*it2);
            }
        }else{
            if(it==cards.end()){
                cout<<"-1"<<endl;
                return 0;
            }else{
                v[*it]--;
                ans[i]=*it;
            if(v[*it]==0){
                cards.erase(*it);
            }
        }  
        }
             
    }
    int ind=k;
    for(int i=0;i<=5*100000;i++){
        while(v[i]){
            if(i>k){
                cout<<"-1"<<endl;
                return 0;
            }
            ans[ind++]=i;
            v[i]--;
        }
    }
    reverse(ans,ans+n);
    for(int i=0;i<n;i++)
        cout<<ans[i]<<" ";

}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 24 ms 1576 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 67 ms 3448 KB Output is correct
2 Correct 43 ms 2244 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 137 ms 6280 KB Output is correct
2 Correct 94 ms 3784 KB Output is correct