QOJ.ac
QOJ
ID | Submission ID | Problem | Hacker | Owner | Result | Submit time | Judge time |
---|---|---|---|---|---|---|---|
#488 | #277422 | #7894. Many Many Heads | SSH | SSH | Failed. | 2023-12-06 19:09:56 | 2023-12-06 19:09:58 |
Details
Extra Test:
Invalid Input
input:
1 [([()])])])])])])])])])])])])])])])])])])])])])])])])]
output:
result:
FAIL Condition failed: "conv(s)" (test case 1)
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#277422 | #7894. Many Many Heads | SSH | AC ✓ | 11ms | 3868kb | C++20 | 1009b | 2023-12-06 18:47:16 | 2023-12-06 19:13:42 |
answer
#include <bits/stdc++.h>
#define int long long
using namespace std;
void solve();
signed main() {
cin.sync_with_stdio(0);
cin.tie(0);
int T = 1;
cin >> T;
while (T--) {
solve();
}
return 0;
}
void solve() {
string s;
cin >> s;
string s1;
s1.resize(s.size());
for (int i = 0; s[i]; i++) {
if (s[i] == ')' || s[i] == '(') s1[i]='1';
else s1[i]=0;
}
stack<int>st;
int pre = -1;
int cnt = 0;
int pp=0;
for (int i = 0; i < s1.size();) {
pp=i;
if (s1[i] == pre) {
if (!st.size()) {
cout << "No\n";
return;
}
while (st.size() && i < s1.size()) {
if (st.top() == s1[i]) {
st.pop();
i++;
} else {
cout << "No\n";
return;
}
}
if (st.size()) {
cout << "No\n";
return;
}
pre = s1[i - 1];
// i++;
cnt++;
if (cnt > 2) {
cout << "No\n";
return;
}
} else {
st.push(s1[i]);
pre = s1[i];
i++;
}
if(i==pp) i++;
}
cout << "Yes\n";
}