Submission #70245646
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define int long long
#define ALL(x) (x).begin(), (x).end()
#define MAX(x) *max_element(ALL(x))
#define MIN(x) *min_element(ALL(x))
typedef pair<int, int> PI;
typedef pair<int, pair<int, int>> PII;
static const int INF = 1010000000000000017LL;
static const double eps = 1e-12;
static const double pi = 3.14159265358979323846;
static const int dx[4] = {1, -1, 0, 0};
static const int dy[4] = {0, 0, 1, -1};
static const int ddx[8] = {1, -1, 0, 0, 1, 1, -1, -1};
static const int ddy[8] = {0, 0, 1, -1, 1, -1, 1, -1};
template <class T>
inline bool chmin(T& a, T b) {
if (a > b) {
a = b;
return true;
}
return false;
}
template <class T>
inline bool chmax(T& a, T b) {
if (a < b) {
a = b;
return true;
}
return false;
}
int Q;
signed main() {
cin >> Q;
string S = "";
int b = 0;
int mi;
vector<int> A(Q, 0);
auto op = [](int a, int b) { return min(a, b); };
auto e = []() { return INF; };
segtree<int, op, e> seg(A);
while (Q--) {
int q;
cin >> q;
if (q == 1) {
char c;
cin >> c;
if (c == '(') {
b++;
} else {
b--;
}
S.push_back(c);
int k = S.size();
seg.set(k - 1, b);
mi = seg.prod(0, k);
} else {
if (S[S.size() - 1] == '(') {
b--;
} else {
b++;
}
S.pop_back();
int k = S.size();
if (k == 0) {
mi = 0;
} else {
seg.set(k - 1, b);
mi = seg.prod(0, k);
}
}
if (b == 0 && mi == 0) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
}
Submission Info
| Submission Time |
|
| Task |
C - Brackets Stack Query |
| User |
tsuyosshi |
| Language |
C++ 20 (gcc 12.2) |
| Score |
300 |
| Code Size |
2035 Byte |
| Status |
AC |
| Exec Time |
957 ms |
| Memory |
26872 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
300 / 300 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt |
| All |
00_sample_00.txt, 01_small_00.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 03_corner_00.txt, 03_corner_01.txt, 03_corner_02.txt, 03_corner_03.txt, 03_corner_04.txt, 03_corner_05.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
1 ms |
3612 KiB |
| 01_small_00.txt |
AC |
512 ms |
15012 KiB |
| 02_random_00.txt |
AC |
904 ms |
25956 KiB |
| 02_random_01.txt |
AC |
903 ms |
25792 KiB |
| 02_random_02.txt |
AC |
907 ms |
25868 KiB |
| 02_random_03.txt |
AC |
911 ms |
25864 KiB |
| 02_random_04.txt |
AC |
905 ms |
25852 KiB |
| 02_random_05.txt |
AC |
911 ms |
25856 KiB |
| 02_random_06.txt |
AC |
901 ms |
25860 KiB |
| 02_random_07.txt |
AC |
903 ms |
25852 KiB |
| 02_random_08.txt |
AC |
898 ms |
25792 KiB |
| 02_random_09.txt |
AC |
906 ms |
25932 KiB |
| 03_corner_00.txt |
AC |
957 ms |
26828 KiB |
| 03_corner_01.txt |
AC |
952 ms |
26828 KiB |
| 03_corner_02.txt |
AC |
944 ms |
26864 KiB |
| 03_corner_03.txt |
AC |
951 ms |
26784 KiB |
| 03_corner_04.txt |
AC |
953 ms |
26872 KiB |
| 03_corner_05.txt |
AC |
925 ms |
26396 KiB |