Submission #139377

# Submission time Handle Problem Language Result Execution time Memory
139377 2019-07-31T15:30:27 Z mechfrog88 Zalmoxis (BOI18_zalmoxis) C++14
35 / 100
197 ms 20448 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#pragma GCC optimize("unroll-loops,no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
 
using namespace __gnu_pbds;
using namespace std;
 
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
 
typedef long long ll;
typedef long double ld;
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll n,k;
    cin >> n >> k;
    vector <ll> arr(n);
    vector <ll> low;
    ll mini = 30;
    for (int z=0;z<n;z++){
        cin >> arr[z];
    }
    ll c = 0;
    vector <ll> ans;
    for (int z=0;z<n;z++){
        c += 1 << arr[z];
        for (int q=0;q<arr[z];q++){
            if (c & (1 << q)){
                ans.push_back(q);
                c += 1 << q;
                k--;
            }
        }
        ans.push_back(arr[z]);
    }
    for (int q=0;q<30;q++){
        if (c & (1 << q)){
            ans.push_back(q);
            c += 1 << q;
            k--;
        }
    }
    for (int z=0;z<ans.size();z++){
        ll w = 0;
        bool ok = true;
        while (ans[z] > 0 && k > 0){
            if (ok) {k++; ok = false;}
            if (k < 2) break;
            ans[z]--;
            k -= 2;
            w += 2;
        }
        if (k == 1 && ans[z] > 1){
            cout << ans[z]-1 << " " << ans[z]-1 << " ";
            w--;
            k--;
        }
        if (w == 0){
            cout << ans[z] << " ";
        } else {
            for (int x=0;x<w;x++){
                cout << ans[z] << " ";
            }
        }   
    }
    cout << endl;
}

Compilation message

zalmoxis.cpp: In function 'int main()':
zalmoxis.cpp:47:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int z=0;z<ans.size();z++){
                  ~^~~~~~~~~~~
zalmoxis.cpp:23:8: warning: unused variable 'mini' [-Wunused-variable]
     ll mini = 30;
        ^~~~
# Verdict Execution time Memory Grader output
1 Correct 178 ms 20448 KB Output is correct
2 Correct 176 ms 20312 KB Output is correct
3 Correct 180 ms 20312 KB Output is correct
4 Correct 177 ms 20312 KB Output is correct
5 Correct 177 ms 20440 KB Output is correct
6 Correct 178 ms 20440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 179 ms 20360 KB doesn't contain S as a subsequence
2 Correct 182 ms 20356 KB Output is correct
3 Incorrect 179 ms 20312 KB doesn't contain S as a subsequence
4 Incorrect 197 ms 20316 KB doesn't contain S as a subsequence
5 Incorrect 188 ms 20444 KB doesn't contain S as a subsequence
6 Incorrect 179 ms 20448 KB doesn't contain S as a subsequence
7 Incorrect 181 ms 20312 KB doesn't contain S as a subsequence
8 Incorrect 179 ms 20424 KB doesn't contain S as a subsequence
9 Incorrect 162 ms 17880 KB doesn't contain S as a subsequence
10 Incorrect 117 ms 8932 KB doesn't contain S as a subsequence
11 Incorrect 133 ms 13540 KB doesn't contain S as a subsequence
12 Incorrect 1 ms 380 KB Unexpected end of file - int32 expected
13 Incorrect 3 ms 376 KB Unexpected end of file - int32 expected
14 Incorrect 2 ms 376 KB Unexpected end of file - int32 expected