Submission #1144400

#TimeUsernameProblemLanguageResultExecution timeMemory
1144400crafticatparentrises (BOI18_parentrises)C++20
11 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define F0R(i,n) for(int i=0;i<n;i++) #define FOR(i,a,b) for(int i=a;i<b;i++) #define ROF(i,a,b) for(int i=b - 1;i>=a;i--) template<typename T> using V = vector<T>; using vi = V<int>; using pi = pair<int,int>; const int INF=1e9+7; void solveProblemA() { int t; cin >> t; while (t--) { string s; cin >> s; vi colors(s.size(), 0); stack<int> st; stack<int> removers, last; bool possible = true; F0R(i,s.size()) { char c = s[i]; if (c == '(') { st.push(i); last.push(i); } else if (c == ')') { if (st.empty()) { removers.push(i); if (removers.size() < 2) { possible = false; break; } else { colors[removers.top()] = 1; removers.pop(); colors[removers.top()] = 2; removers.pop(); } } else { st.pop(); removers.push(i); } } } while (!st.empty() and last.size() >= 2) { int i = last.top(); last.pop(); int j = last.top(); last.pop(); colors[i] = 1; colors[j] = 2; st.pop(); } if (!st.empty()) possible = false; if (!possible) { cout << "impossible" << "\n"; continue; } F0R(i, s.size()) { cout << (colors[i] == 0 ? "G" : colors[i] == 1 ? "B" : "R") << ""; } cout << "\n"; } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int p; cin >> p; if (p == 1) { solveProblemA(); } 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...