제출 #335435

#제출 시각아이디문제언어결과실행 시간메모리
3354353funnnZalmoxis (BOI18_zalmoxis)C++17
100 / 100
720 ms40432 KiB
#include <bits/stdc++.h>
#define mp make_pair
#define pii pair <int, int>
 
using namespace std;
 
int need;
 
void dfs(int val){
    if (need == 0 || val == 0){
        cout << val << " ";
        return;
    }
    --need;
    dfs(val - 1);
    dfs(val - 1);
}
 
int main()
{
    int N, K;
    cin >> N >> K;
    vector <pii> a(N, mp(0, 0));
    for (int i = 0;i < N;++i)
        cin >> a[i].first;
    for (int p = 0;p < 30;++p){
        vector <pii> b;
        for (int i = 0;i < a.size();++i){
            if (a[i].first <= p){
                int j = i, cnt = 0;
                while (j < a.size() && a[j].first <= p){
                    cnt += (1 << a[j].first);
                    b.push_back(a[j]);
                    ++j;
                }
                if ((cnt >> p) & 1)
                    b.push_back(mp(p, 1));
                i = j - 1;
            }
            else
                b.push_back(a[i]);
        }
        a = b;
    }
    need = N + K - a.size();
    for (int i = 0;i < a.size();++i){
        if (a[i].second == 0)
            cout << a[i].first << " ";
        else
            dfs(a[i].first);
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:28:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |         for (int i = 0;i < a.size();++i){
      |                        ~~^~~~~~~~~~
zalmoxis.cpp:31:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |                 while (j < a.size() && a[j].first <= p){
      |                        ~~^~~~~~~~~~
zalmoxis.cpp:46:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for (int i = 0;i < a.size();++i){
      |                    ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...