Submission #685092

# Submission time Handle Problem Language Result Execution time Memory
685092 2023-01-23T10:34:34 Z KiriLL1ca Devil's Share (RMI19_devil) C++17
100 / 100
156 ms 5728 KB
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define sz(x) (int)((x).size())
#define pb push_back

using namespace std;

inline void solve () {
    int k; cin >> k;
    vector <int> cnt (10);
    for (int i = 1; i <= 9; ++i) cin >> cnt[i];
    int n = accumulate(all(cnt), 0);
    string en;

    int dig = 9;
    int iter = k - 1;
    while (iter--) {
        while (!cnt[dig]) --dig;
        en.pb((char)(dig + '0'));
        --cnt[dig];
    }

    while (!cnt[dig]) --dig;
    vector <string> as;
    deque <string> ass;

    while (cnt[dig]) as.pb(string(1, (char)(dig + '0'))), --cnt[dig];

    for (int i = 1; i <= 9; ++i) {
        while (cnt[i]--) {
            ass.pb(string(1, (char)(i + '0')));
        }
    }

    int pos = sz(as) - 1;
    while (sz(ass)) {
        string v = ass.front(); ass.pop_front();
        as[pos] += v;
        if (pos && (!sz(ass) || v != ass.front())) {
            while (sz(as) > pos) {
                ass.push_back(as.back());
                as.pop_back();
            }
        }
        --pos;
        if (!~pos) pos = sz(as) - 1;
    }

    string t;
    for (auto q : as) t += q;
    reverse(all(en)); t += en;
    cout << t << endl;
}

signed main ()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    #ifdef LOCAL
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif // LOCAL

    int t = 1; cin >> t;
    while (t--) solve();
    return 0;
}

Compilation message

devil.cpp: In function 'void solve()':
devil.cpp:12:9: warning: unused variable 'n' [-Wunused-variable]
   12 |     int n = accumulate(all(cnt), 0);
      |         ^
# Verdict Execution time Memory Grader output
1 Correct 4 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 116 ms 1272 KB Output is correct
2 Correct 90 ms 1164 KB Output is correct
3 Correct 84 ms 1420 KB Output is correct
4 Correct 119 ms 1232 KB Output is correct
5 Correct 57 ms 1356 KB Output is correct
6 Correct 45 ms 1324 KB Output is correct
7 Correct 38 ms 1228 KB Output is correct
8 Correct 38 ms 1624 KB Output is correct
9 Correct 39 ms 4468 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 76 ms 1084 KB Output is correct
2 Correct 48 ms 1228 KB Output is correct
3 Correct 27 ms 5728 KB Output is correct
4 Correct 41 ms 5440 KB Output is correct
5 Correct 67 ms 5644 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 256 KB Output is correct
2 Correct 116 ms 1272 KB Output is correct
3 Correct 90 ms 1164 KB Output is correct
4 Correct 84 ms 1420 KB Output is correct
5 Correct 119 ms 1232 KB Output is correct
6 Correct 57 ms 1356 KB Output is correct
7 Correct 45 ms 1324 KB Output is correct
8 Correct 38 ms 1228 KB Output is correct
9 Correct 38 ms 1624 KB Output is correct
10 Correct 39 ms 4468 KB Output is correct
11 Correct 76 ms 1084 KB Output is correct
12 Correct 48 ms 1228 KB Output is correct
13 Correct 27 ms 5728 KB Output is correct
14 Correct 41 ms 5440 KB Output is correct
15 Correct 67 ms 5644 KB Output is correct
16 Correct 116 ms 1056 KB Output is correct
17 Correct 111 ms 1200 KB Output is correct
18 Correct 101 ms 1168 KB Output is correct
19 Correct 156 ms 1340 KB Output is correct
20 Correct 26 ms 1356 KB Output is correct
21 Correct 25 ms 1260 KB Output is correct
22 Correct 27 ms 1648 KB Output is correct
23 Correct 35 ms 5028 KB Output is correct