답안 #408631

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
408631 2021-05-19T11:10:07 Z atoiz Devil's Share (RMI19_devil) C++14
100 / 100
90 ms 3772 KB
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

int main(int argc, char const *argv[])
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int t;
	cin >> t;
	while (t--) {
		int K;
		cin >> K;
		vector<pair<string, int>> vec(9);
		for (int i = 0; i < 9; ++i) {
			cin >> vec[i].second;
			vec[i].first = '1' + i;
		}

		string suffix = "";
		while ((int) suffix.size() < K - 1) {
			if (vec.back().second > K - 1 - (int) suffix.size()) {
				vec.back().second -= K - 1 - (int) suffix.size();
				suffix = string(K - 1 - (int) suffix.size(), vec.back().first[0]) + suffix;
			} else {
				suffix = string(vec.back().second, vec.back().first[0]) + suffix;
				vec.pop_back();
			}
		}

		while (vec.back().second == 0) vec.pop_back();
		for (int i = 0; i < (int) vec.size() - 1; ++i) {
			if (vec[i].second == 0) continue;
			if (vec[i].second < vec.back().second) {
				auto last = vec.back();
				vec.back().first += vec[i].first;
				vec.back().second = vec[i].second;
				vec.push_back(last);
				vec.back().second -= vec[i].second;
			} else {
				vec.back().first += vec[i].first;
				vec[i].second -= vec.back().second;
				if (vec[i].second > 0) --i;
			}
		}

		for (int i = 0; i < (int) vec.back().second; ++i) {
			cout << vec.back().first;
		}
		cout << suffix << '\n';
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 55 ms 2064 KB Output is correct
2 Correct 39 ms 1732 KB Output is correct
3 Correct 35 ms 1676 KB Output is correct
4 Correct 61 ms 2112 KB Output is correct
5 Correct 6 ms 1356 KB Output is correct
6 Correct 6 ms 1356 KB Output is correct
7 Correct 9 ms 1356 KB Output is correct
8 Correct 6 ms 1356 KB Output is correct
9 Correct 6 ms 1580 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 1688 KB Output is correct
2 Correct 22 ms 1484 KB Output is correct
3 Correct 7 ms 1324 KB Output is correct
4 Correct 7 ms 3772 KB Output is correct
5 Correct 2 ms 1356 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 332 KB Output is correct
2 Correct 55 ms 2064 KB Output is correct
3 Correct 39 ms 1732 KB Output is correct
4 Correct 35 ms 1676 KB Output is correct
5 Correct 61 ms 2112 KB Output is correct
6 Correct 6 ms 1356 KB Output is correct
7 Correct 6 ms 1356 KB Output is correct
8 Correct 9 ms 1356 KB Output is correct
9 Correct 6 ms 1356 KB Output is correct
10 Correct 6 ms 1580 KB Output is correct
11 Correct 44 ms 1688 KB Output is correct
12 Correct 22 ms 1484 KB Output is correct
13 Correct 7 ms 1324 KB Output is correct
14 Correct 7 ms 3772 KB Output is correct
15 Correct 2 ms 1356 KB Output is correct
16 Correct 65 ms 2044 KB Output is correct
17 Correct 64 ms 2116 KB Output is correct
18 Correct 54 ms 1856 KB Output is correct
19 Correct 90 ms 2628 KB Output is correct
20 Correct 6 ms 1356 KB Output is correct
21 Correct 7 ms 1356 KB Output is correct
22 Correct 4 ms 1356 KB Output is correct
23 Correct 3 ms 1448 KB Output is correct