Submission #73742

#TimeUsernameProblemLanguageResultExecution timeMemory
73742TadijaSebezSecurity Gate (JOI18_security_gate)C++11
12 / 100
5026 ms728 KiB
#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) 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)

securitygate.cpp: In function 'int main()':
securitygate.cpp:40:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i",&n);
  ~~~~~^~~~~~~~~
securitygate.cpp:41:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s",s);
  ~~~~~^~~~~~~~
#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...