Submission #144996

# Submission time Handle Problem Language Result Execution time Memory
144996 2019-08-18T10:54:05 Z MKopchev Zalmoxis (BOI18_zalmoxis) C++14
100 / 100
208 ms 14432 KB
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e6+42;
int n,k;
int inp[nmax];
vector<int> sequence,output;
int pos=1;
void go(int num)
{
    if(pos>n||inp[pos]>num)
    {
        sequence.push_back(num);
        return;
    }
    if(inp[pos]==num)
    {
        pos++;
        sequence.push_back(num);
        return;
    }

    go(num-1);
    go(num-1);
}
int sz_now;
void expand(int num)
{
    //cout<<"expand "<<num<<" "<<sz_now<<endl;
    if(num==0||sz_now==n+k)
    {
        output.push_back(num);
        return;
    }

    sz_now++;
    expand(num-1);

    expand(num-1);
}
int main()
{
    scanf("%i%i",&n,&k);
    for(int i=1;i<=n;i++)scanf("%i",&inp[i]);

    go(30);

    pos=1;

    sz_now=sequence.size();

    for(int i=0;i<sequence.size();i++)
    {
        if(pos<=n&&sequence[i]==inp[pos])
        {
            output.push_back(sequence[i]);
            pos++;
            continue;
        }

        expand(sequence[i]);
    }
    assert(output.size()==n+k);

    for(auto p:output)
        printf("%i ",p);
    return 0;
}

Compilation message

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:51:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<sequence.size();i++)
                 ~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/cassert:44:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:33,
                 from zalmoxis.cpp:1:
zalmoxis.cpp:62:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     assert(output.size()==n+k);
            ~~~~~~~~~~~~~^~~~~
zalmoxis.cpp:42:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&k);
     ~~~~~^~~~~~~~~~~~~~
zalmoxis.cpp:43:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i<=n;i++)scanf("%i",&inp[i]);
                          ~~~~~^~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 204 ms 14300 KB Output is correct
2 Correct 203 ms 14300 KB Output is correct
3 Correct 203 ms 14372 KB Output is correct
4 Correct 206 ms 14300 KB Output is correct
5 Correct 206 ms 14332 KB Output is correct
6 Correct 203 ms 14300 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 204 ms 14372 KB Output is correct
2 Correct 208 ms 14308 KB Output is correct
3 Correct 205 ms 14300 KB Output is correct
4 Correct 204 ms 14300 KB Output is correct
5 Correct 204 ms 14432 KB Output is correct
6 Correct 197 ms 14300 KB Output is correct
7 Correct 203 ms 14300 KB Output is correct
8 Correct 204 ms 14420 KB Output is correct
9 Correct 189 ms 13260 KB Output is correct
10 Correct 132 ms 9308 KB Output is correct
11 Correct 157 ms 11100 KB Output is correct
12 Correct 91 ms 6364 KB Output is correct
13 Correct 91 ms 6364 KB Output is correct
14 Correct 92 ms 6364 KB Output is correct