Submission #248997

# Submission time Handle Problem Language Result Execution time Memory
248997 2020-07-14T01:58:53 Z two_sides Devil's Share (RMI19_devil) C++17
100 / 100
105 ms 4576 KB
//https://oj.uz/problem/view/RMI19_devil
#include <bits/stdc++.h>
using namespace std;

void solve(){
    int k; cin >> k;
    vector <int> num(10);
    for (int i = 1; i <= 9; i++)
        cin >> num[i];
    string b; int cur = 0;
    for (int i = 9; i; i--)
        while (num[i] && cur < k - 1){
            cur++; num[i]--;
            b.push_back(i + '0');
        }
    reverse(b.begin(), b.end());
    vector <string> a;
    deque <string> dq;
    for (int i = 9; i; i--)
        if (num[i]){
            a.resize(num[i],
            string(1, i + '0'));
            num[i] = 0; break;
        }
    for (int i = 1; i < 10; i++)
        while (num[i]){
            num[i]--;
            dq.push_back(
            string(1, i + '0'));
        }
    int pos = a.size() - 1;
    while (!dq.empty()){
        auto cur = dq.front();
        dq.pop_front();
        a[pos] += cur;
        if ((dq.empty() ||
        dq.front() != cur)
        && pos)
            while (a.size() > pos){
                dq.push_back(a.back());
                a.pop_back();
            }
        pos--;
        if (pos < 0) pos += a.size();
    }
    for (auto str : a) cout << str;
    cout << b << '\n';
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    int t; cin >> t;
    while (t--) solve();
}

Compilation message

devil.cpp: In function 'void solve()':
devil.cpp:39:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while (a.size() > pos){
                    ~~~~~~~~~^~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 103 ms 2112 KB Output is correct
2 Correct 104 ms 1912 KB Output is correct
3 Correct 82 ms 1784 KB Output is correct
4 Correct 103 ms 2172 KB Output is correct
5 Correct 57 ms 1404 KB Output is correct
6 Correct 50 ms 1404 KB Output is correct
7 Correct 43 ms 1400 KB Output is correct
8 Correct 47 ms 1860 KB Output is correct
9 Correct 54 ms 4384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 67 ms 1784 KB Output is correct
2 Correct 49 ms 1528 KB Output is correct
3 Correct 31 ms 3844 KB Output is correct
4 Correct 52 ms 3948 KB Output is correct
5 Correct 98 ms 4576 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 103 ms 2112 KB Output is correct
3 Correct 104 ms 1912 KB Output is correct
4 Correct 82 ms 1784 KB Output is correct
5 Correct 103 ms 2172 KB Output is correct
6 Correct 57 ms 1404 KB Output is correct
7 Correct 50 ms 1404 KB Output is correct
8 Correct 43 ms 1400 KB Output is correct
9 Correct 47 ms 1860 KB Output is correct
10 Correct 54 ms 4384 KB Output is correct
11 Correct 67 ms 1784 KB Output is correct
12 Correct 49 ms 1528 KB Output is correct
13 Correct 31 ms 3844 KB Output is correct
14 Correct 52 ms 3948 KB Output is correct
15 Correct 98 ms 4576 KB Output is correct
16 Correct 77 ms 2100 KB Output is correct
17 Correct 82 ms 2296 KB Output is correct
18 Correct 73 ms 1912 KB Output is correct
19 Correct 105 ms 2680 KB Output is correct
20 Correct 31 ms 1400 KB Output is correct
21 Correct 29 ms 1400 KB Output is correct
22 Correct 28 ms 1588 KB Output is correct
23 Correct 44 ms 4380 KB Output is correct