Problem:
()
Problem Statement
文字列
S
がある．はじめ，
S
は空文字列である．
以下の処理を
n
個順番に行う．
S
の末尾に
p_i
(="("または")")を
x_i
個追加する．
処理を施した後，
S
がバランスのとれた文字列であるかどうか判定せよ．
「文字列のバランスが取れている」とは，次のように定義される．
空文字列はバランスが取れている．
バランスの取れている文字列
a
と
b
に対して，
a + b
(+は文字列の連結を表す)はバランスが取れている．
バランスの取れている文字列
a
に対して，"(" +
a
+ ")"はバランスが取れている．
Input
入力は以下の形式に従う．与えられる数は全て整数である．
n
p_1
x_1
. . .
p_n
x_n
Constraints
1≦n≦1,000
1≦x_i≦10^6
p_i
は"("または")"
Output
バランスがとれているときは"YES"を，そうでなければ"NO"を1行に出力せよ．
Sample Input 1
3
( 5
) 4
) 1
Output for the Sample Input 1
YES
文字列
S
="((((()))))"はバランスがとれている．
Sample Input 2
5
( 2
) 2
( 3
) 1
) 2
Output for the Sample Input 2
YES
Sample Input 3
2
) 1
( 1
Output for the Sample Input 3
NO

Submitted solutions:

code_snippet: #include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); i++)
#define rep2(i, a, b) for (int i = (a); i < (b); ++i)
#define all(a) (a).begin(), (a).end()

using namespace std;
using ll = long long int;
using P = pair<int, int>;

const ll INF_L = 1LL << 60;
const int INF_I = 1 << 30;
const int MOD = (int)1e9 + 7;
const double PI = acos(-1);
int dx[] = {1, 0, -1, 0, 1, 1, -1, -1};
int dy[] = {0, -1, 0, 1, 1, -1, -1, 1};

int main()
{
    int n;
    cin >> n;

    int left = 0, right = 0;
    while (n--)
    {
        char c;
        int x;
        cin >> c >> x;

        if (c == '(')
            left += x;
        else
        {
            rep(i, x)
            {
                if (left)
                    left--;
                else
                    right++;
            }
        }
    }

    string ans = "YES";
    if (left + right)
        ans = "NO";
    cout << ans << "\n";
    return 0;
}
accuracy: 1
time_ms: 130
memory_kb: 3444
final_rank: 2

code_snippet: #include <iostream>

using namespace std;

int main()
{
  int n;
  int st = 0;
  int x;
  char p;
  bool isBalanced = true;
  
  cin >> n;

  while (n--) {
    cin >> p >> x;
    cin.ignore();
    if (p == '(') {
      while (x--) st++;
    } else {
      while (x--) {
        if (st == 0) {
          isBalanced = false;
        } else {
          st--;
        }
      }
    }
  }
  if (st == 0 && isBalanced) cout << "YES" << endl;
  else cout << "NO" << endl;
}
accuracy: 1
time_ms: 120
memory_kb: 3116
final_rank: 1

code_snippet: #include<bits/stdc++.h>
using namespace std;

int main(){
int a;
cin>>a;
int s=0;
for(int c=0;c<a;c++){
	char d;int e;
	cin>>d>>e;
	for(int f=0;f<e;f++){
		if(d=='(')s++;
		else {
			if(s<1){puts("NO");return 0;}
			else s--;
		}
	}
}
if(s)puts("NO");
else puts("YES");
}
accuracy: 1
time_ms: 300
memory_kb: 3076
final_rank: 3

code_snippet: #include<bits/stdc++.h>
using namespace std;

int main(){
int a;
cin>>a;
int s=0;
for(int c=0;c<a;c++){
	char d;int e;
	cin>>d>>e;
	for(int f=0;f<e;f++){
		if(d=='(')s++;
		else {
			if(s<0){puts("NO");return 0;}
			else s--;
		}
	}
}
if(s)puts("NO");
else puts("YES");
}
accuracy: 0.16216216216216217
time_ms: 300
memory_kb: 3076
final_rank: 4

code_snippet: #include<iostream>
#include<stack>
#include<string>
using namespace std;

int main(){

  int n;
  string s;
  int m;
  stack < int > sta;
  bool ans = false;

  for(int i=0;i<111111;i++) sta.push(1);

  cin >> n;

  for(int i=0;i<n;i++){
    cin >> s >> m;

    if(s == "("){
      for(int j=0;j<m;j++) sta.push(1);
    }

    if(s == ")"){
      for(int j=0;j<m;j++) sta.pop();
    }

    if(sta.size() < 111111) ans = true;

  }

  if(sta.size() == 111111 && !ans) cout << "YES" << endl;
  else cout << "NO" << endl;

}
accuracy: 0.02702702702702703
time_ms: 610
memory_kb: 5720
final_rank: 6

code_snippet: #include<iostream>
#include<stack>
#include<string>
using namespace std;

int main(){

  int n;
  string s;
  int m;
  stack < int > sta;
  bool ans = false;

  for(int i=0;i<1000;i++) sta.push(1);

  cin >> n;

  for(int i=0;i<n;i++){
    cin >> s >> m;

    if(s == "("){
      for(int j=0;j<m;j++) sta.push(1);
    }

    if(s == ")"){
      for(int j=0;j<m;j++) sta.pop();
    }

    if(sta.size() < 1000) ans = true;

  }

  if(sta.size() == 1000 && !ans) cout << "YES" << endl;
  else cout << "NO" << endl;

}
accuracy: 0.02702702702702703
time_ms: 610
memory_kb: 5268
final_rank: 5