Submission #494360

# Submission time Handle Problem Language Result Execution time Memory
494360 2021-12-15T10:05:43 Z cadmiumsky Devil's Share (RMI19_devil) C++14
100 / 100
1044 ms 5444 KB
#include <iostream>
#include <deque>
#include <algorithm>

using namespace std;

deque< pair<string,int> >deq;

int freq[10];

void testcase() {
  int n;
  cin >> n;
  --n;
  string s="",sus;
  for(int i=0; i<9; i++)
    cin >> freq[i];
  for(int i=8; i>=0; i--) {
    while(freq[i] && n) {
      n--;
      s+='1'+i;
      freq[i]--;
    }
  }
  reverse(s.begin(),s.end());
  for(int i=0; i<9; i++) {
    if(freq[i])
      sus='1'+i,deq.push_back(make_pair(sus,freq[i]));
  }
  while(deq.size()>1) {
    //cout << deq.size() <<'\n';
    auto x=deq.back();
    deq.pop_back();
    while(x.second>0) {
      auto temp=deq.front();
      deq.pop_front();
      auto nou=pair<string,int>{x.first+temp.first,min(temp.second,x.second)};
      x.second-=nou.second;
      temp.second-=nou.second;
      deq.push_back(nou);
      if(temp.second)
        deq.push_front(temp);
      //cout << "+ " << nou.first << ' '<< nou.second << '\n';
    }
  }
  auto x=deq.front();
  while(x.second--)
    cout << x.first;
  cout << s <<'\n';
  deq.pop_back();
}

int main() {
  int t;
  cin >> t;
  while(t--)
    testcase();
}
# Verdict Execution time Memory Grader output
1 Correct 5 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 178 ms 1912 KB Output is correct
2 Correct 108 ms 1756 KB Output is correct
3 Correct 115 ms 1732 KB Output is correct
4 Correct 175 ms 1988 KB Output is correct
5 Correct 22 ms 1268 KB Output is correct
6 Correct 31 ms 1336 KB Output is correct
7 Correct 88 ms 1220 KB Output is correct
8 Correct 127 ms 1296 KB Output is correct
9 Correct 1044 ms 5444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 102 ms 1724 KB Output is correct
2 Correct 45 ms 1552 KB Output is correct
3 Correct 10 ms 1360 KB Output is correct
4 Correct 6 ms 1612 KB Output is correct
5 Correct 2 ms 1360 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 332 KB Output is correct
2 Correct 178 ms 1912 KB Output is correct
3 Correct 108 ms 1756 KB Output is correct
4 Correct 115 ms 1732 KB Output is correct
5 Correct 175 ms 1988 KB Output is correct
6 Correct 22 ms 1268 KB Output is correct
7 Correct 31 ms 1336 KB Output is correct
8 Correct 88 ms 1220 KB Output is correct
9 Correct 127 ms 1296 KB Output is correct
10 Correct 1044 ms 5444 KB Output is correct
11 Correct 102 ms 1724 KB Output is correct
12 Correct 45 ms 1552 KB Output is correct
13 Correct 10 ms 1360 KB Output is correct
14 Correct 6 ms 1612 KB Output is correct
15 Correct 2 ms 1360 KB Output is correct
16 Correct 166 ms 1976 KB Output is correct
17 Correct 197 ms 2168 KB Output is correct
18 Correct 173 ms 1844 KB Output is correct
19 Correct 296 ms 2516 KB Output is correct
20 Correct 18 ms 1244 KB Output is correct
21 Correct 42 ms 1304 KB Output is correct
22 Correct 37 ms 1348 KB Output is correct
23 Correct 43 ms 1684 KB Output is correct