Submission #746204

# Submission time Handle Problem Language Result Execution time Memory
746204 2023-05-21T21:53:59 Z JellyTheOctopus Take-out (POI13_usu) C++17
100 / 100
235 ms 36268 KB
#include <bits/stdc++.h>
using namespace std;

int N, K;
string str;

int main() {
	cin >> N >> K;
	cin >> str;
	vector<bool> arr(N+1);
	for (int i = 1; i <= N; i++) {
		arr[i] = (str[i-1] == 'c');
	}
	stack<int> ind;
	vector<int> space;
	space.push_back(0);
	int c = 0;
	vector<vector<int>> ans;
	for (int i = 1; i <= N; i++) {
		ind.push(i);
		if (arr[i]) {
			c++;
			space.push_back(0);
		}
		else {
			space[c]++;
		}
		if (c && (space[c]+space[c-1]) >= K) {
			vector<int> cur;
			for (int j = 0; j < K+1; j++) {
				cur.push_back(ind.top());
				ind.pop();
			}
			reverse(cur.begin(), cur.end());
			ans.push_back(cur);
			int diff = space[c--];
			space.pop_back();
			space[c] -= K-diff;
		}
	}
	reverse(ans.begin(), ans.end());
	for (auto cur: ans) {
		for (auto v: cur) {
			cout << v << " ";
		} cout << "\n";
	}
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 312 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 340 KB Output is correct
2 Correct 2 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 2316 KB Output is correct
2 Correct 14 ms 1932 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 31 ms 3156 KB Output is correct
2 Correct 32 ms 4072 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 61 ms 6616 KB Output is correct
2 Correct 35 ms 4456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 86 ms 9640 KB Output is correct
2 Correct 100 ms 11980 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 235 ms 36268 KB Output is correct
2 Correct 119 ms 20260 KB Output is correct
3 Correct 113 ms 12792 KB Output is correct
4 Correct 115 ms 13108 KB Output is correct