제출 #1164439

#제출 시각아이디문제언어결과실행 시간메모리
1164439adriines06Security Gate (JOI18_security_gate)C++20
12 / 100
5094 ms664 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int MOD=1e9+7; bool valido(string st){ int r=0,n=st.size(); int cont=0; bool b=true; for(char c: st){ if(c=='(') cont++; else cont--; if(cont<0) b=false; } if(cont==0 && b) return 1; for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ string s=st; for(int k=i;k<=j;k++){ if(s[k]=='(') s[k]=')'; else if(s[k]==')') s[k]='('; } int cont=0; bool b=true; for(char c: s){ if(c=='(') cont++; else cont--; if(cont<0) b=false; } if(cont==0 && b) return 1; } } return 0; } ll cambios(string s, int i){ if(i==s.size()){ return valido(s); } if(s[i]!='x') return cambios(s,i+1); ll cont=0; s[i]='('; cont=(cont+cambios(s,i+1))%MOD; s[i]=')'; cont=(cont+cambios(s,i+1))%MOD; return cont%MOD; } void solve(){ int n; cin>>n; string s; cin>>s; if(n&1){ cout<<0; return; } ll ans=0; ans=cambios(s,0); cout<<ans%MOD; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...