| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 73744 | TadijaSebez | Security Gate (JOI18_security_gate) | C++11 | 5029 ms | 620 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
const int N=105;
char s[N];
int n;
bool good(int l, int r)
{
	int c=0;
	for(int i=0;i<n;i++)
	{
		if(l<=i && i<=r)
		{
			if(s[i]==')') c++;
			else c--;
		}
		else
		{
			if(s[i]=='(') c++;
			else c--;
		}
		if(c<0) return 0;
	}
	return c==0;
}
bool Check()
{
	int c=0,d=0,l,r,i,j;
	for(i=0;i<n;i++){ c+=s[i]=='('?1:-1;if(c<0) break;}if(!c) return 1;l=i;
	for(i=n-1;~i;i--){ d+=s[i]==')'?1:-1;if(d<0) break;}if(!d) return 1;r=i;
	for(i=0;i<=l;i++) for(j=r;j<n;j++) if(good(i,j)) return 1;
	if(good(0,-1)) return 1;
	return 0;
}
int main()
{
	int i,j,k=0;
	scanf("%i",&n);
	scanf("%s",s);
	vector<int> pos;
	for(i=0;i<n;i++) if(s[i]=='x') pos.pb(i),k++;
	int sol=0;
	if(k>20 || (n&1)) return printf("0\n"),0;
	for(j=0;j<1<<k;j++)
	{
		for(i=0;i<k;i++) s[pos[i]]='('+((j>>i)&1);
		//cout << s << endl;
		if(Check()) sol++;
	}
	printf("%i\n",sol);
	return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
