Submission #1155664

#TimeUsernameProblemLanguageResultExecution timeMemory
1155664secretwood01새로운 문제 (POI13_usu)C++17
0 / 100
252 ms40276 KiB
#include <bits/stdc++.h> using namespace std; class A { public: vector<int> white; int black; static int K; int ind; A(int b) { black = b + 1; ind = 0; white.resize(K + 1); } void add(int x) { white[ind] = x + 1; ind++; } bool isFilled() { return ind >= K; } string toString() { white[K] = black; sort(white.begin(), white.end()); stringstream ss; for (int i = 0; i < K; i++) ss << white[i] << " "; ss << white[K]; return ss.str(); } }; int A::K; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N >> A::K; string S; cin >> S; deque<A> bs, ans; deque<int> ws; for (int i = 0; i < N; i++) { if (S[i] == 'b') { ws.push_back(i); while (!bs.empty() && !ws.empty()) { while (!bs.front().isFilled() && !ws.empty()) { bs.front().add(ws.back()); ws.pop_back(); } if (bs.front().isFilled()) { ans.push_back(bs.front()); bs.pop_front(); } } } else { bs.emplace_back(i); while (!bs.empty() && !ws.empty()) { while (!bs.front().isFilled() && !ws.empty()) { bs.front().add(ws.back()); ws.pop_back(); } if (bs.front().isFilled()) { ans.push_back(bs.front()); bs.pop_front(); } } } } while (!ans.empty()) { cout << ans.front().toString() << "\n"; ans.pop_front(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...