| Task: | Sulkulauseke |
| Sender: | sharph2 |
| Submission time: | 2025-12-20 15:07:24 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 20 |
| #2 | ACCEPTED | 30 |
| #3 | ACCEPTED | 50 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #6 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #7 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #8 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #9 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #10 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #11 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #12 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #13 | ACCEPTED | 0.00 s | 2, 3 | details |
| #14 | ACCEPTED | 0.00 s | 2, 3 | details |
| #15 | ACCEPTED | 0.00 s | 2, 3 | details |
| #16 | ACCEPTED | 0.00 s | 2, 3 | details |
| #17 | ACCEPTED | 0.00 s | 2, 3 | details |
| #18 | ACCEPTED | 0.01 s | 3 | details |
| #19 | ACCEPTED | 0.01 s | 3 | details |
| #20 | ACCEPTED | 0.01 s | 3 | details |
| #21 | ACCEPTED | 0.01 s | 3 | details |
| #22 | ACCEPTED | 0.01 s | 3 | details |
| #23 | ACCEPTED | 0.01 s | 3 | details |
| #24 | ACCEPTED | 0.01 s | 3 | details |
| #25 | ACCEPTED | 0.00 s | 2, 3 | details |
| #26 | ACCEPTED | 0.01 s | 3 | details |
| #27 | ACCEPTED | 0.00 s | 2, 3 | details |
| #28 | ACCEPTED | 0.01 s | 3 | details |
| #29 | ACCEPTED | 0.00 s | 2, 3 | details |
| #30 | ACCEPTED | 0.01 s | 3 | details |
Code
#include <iostream>
#include <climits>
#include <cmath>
#include <map>
#include <set>
#include <vector>
using namespace std;
int main() {
cin.sync_with_stdio(false);
cin.tie(nullptr);
string S;
cin >> S;
int n = S.size();
vector<int> summa(n + 1);
summa[n] = 0;
for(int i = n - 1; i >= 0; --i) {
summa[i] = summa[i + 1];
if(S[i] == '(') {
++summa[i];
}
if(S[i] == ')' || S[i] == '?') {
--summa[i];
}
}
int x = 0;
for(int i = 0; i < n; ++i) {
if(S[i] == '(') {
++x;
}
if(S[i] == ')') {
--x;
}
if(S[i] == '?') {
if(x + 1 + summa[i + 1] <= 0) {
++x;
S[i] = '(';
} else {
--x;
S[i] = ')';
}
}
if(x < 0) {
cout << "IMPOSSIBLE\n";
return 0;
}
}
if(x != 0) {
cout << "IMPOSSIBLE\n";
return 0;
}
cout << S << "\n";
return 0;
}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ? |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ?? |
| correct output |
|---|
| () |
| user output |
|---|
| () |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| (() |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ((() |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ())( |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| )??? |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ()?( |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 8
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ()(())(()) |
| correct output |
|---|
| ()(())(()) |
| user output |
|---|
| ()(())(()) |
Test 9
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ?)(())(()? |
| correct output |
|---|
| ()(())(()) |
| user output |
|---|
| ()(())(()) |
Test 10
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| (?))?(())) |
| correct output |
|---|
| (())((())) |
| user output |
|---|
| (())((())) |
Test 11
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| (?)((????? |
| correct output |
|---|
| (()((()))) |
| user output |
|---|
| (()((()))) |
Test 12
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| ?????????? |
| correct output |
|---|
| ((((())))) |
| user output |
|---|
| ((((())))) |
Test 13
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ((((()))))(((())()()())()(()))... |
| correct output |
|---|
| ((((()))))(((())()()())()(()))... |
| user output |
|---|
| ((((()))))(((())()()())()(()))... |
Test 14
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ()(??()?(?()?()???())??)???(((... |
| correct output |
|---|
| ()(((()(((()(()(((())(()((((((... |
| user output |
|---|
| ()(((()(((()(()(((())(()((((((... |
Test 15
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ?()?()(((()?))(()????)()(???)?... |
| correct output |
|---|
| (()(()(((()())(()(((()()(((()(... |
| user output |
|---|
| (()(()(((()())(()(((()()(((()(... |
Test 16
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ???)?????(????(????)??????????... |
| correct output |
|---|
| ((()((((((((((((((()((((((((((... |
| user output |
|---|
| ((()((((((((((((((()((((((((((... |
Test 17
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ??????????????????????????????... |
| correct output |
|---|
| ((((((((((((((((((((((((((((((... |
| user output |
|---|
| ((((((((((((((((((((((((((((((... |
Test 18
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ((((()(()()))))()())()()(((())... |
| correct output |
|---|
| ((((()(()()))))()())()()(((())... |
| user output |
|---|
| ((((()(()()))))()())()()(((())... |
Test 19
Group: 3
Verdict: ACCEPTED
| input |
|---|
| (((()((()((()())(?)((())?(()??... |
| correct output |
|---|
| (((()((()((()())(()((())((()((... |
| user output |
|---|
| (((()((()((()())(()((())((()((... |
Test 20
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ()?????)??()?(??)???()????)))?... |
| correct output |
|---|
| ()((((()((()(((()(((()(((()))(... |
| user output |
|---|
| ()((((()((()(((()(((()(((()))(... |
Test 21
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ????(????)???)??)???()???????(... |
| correct output |
|---|
| ((((((((()((()(()(((()((((((((... |
| user output |
|---|
| ((((((((()((()(()(((()((((((((... |
Test 22
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ??????????????????????????????... |
| correct output |
|---|
| ((((((((((((((((((((((((((((((... |
| user output |
|---|
| ((((((((((((((((((((((((((((((... |
Test 23
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ((((((((((((((((((((((((((((((... |
| correct output |
|---|
| ((((((((((((((((((((((((((((((... |
| user output |
|---|
| ((((((((((((((((((((((((((((((... |
Test 24
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ??????????????????????????????... |
| correct output |
|---|
| ((((((((((((((((((((((((((((((... |
| user output |
|---|
| ((((((((((((((((((((((((((((((... |
Test 25
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ((((((((((((((((((((((((((((((... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 26
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ((((((((((((((((((((((((((((((... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 27
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| )?????????????????????????????... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 28
Group: 3
Verdict: ACCEPTED
| input |
|---|
| )?????????????????????????????... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 29
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| ??????????????????????????????... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
Test 30
Group: 3
Verdict: ACCEPTED
| input |
|---|
| ??????????????????????????????... |
| correct output |
|---|
| IMPOSSIBLE |
| user output |
|---|
| IMPOSSIBLE |
