Submission #537589

#TimeUsernameProblemLanguageResultExecution timeMemory
537589tqbfjotldSecurity Gate (JOI18_security_gate)C++14
0 / 100
0 ms212 KiB
#include <bits/stdc++.h> using namespace std; bool checkbr(vector<bool> s){ int t = 0; for (int x = 0; x<s.size(); x++){ if (s[x]) t++; else t--; if (t<0) return false; } return t==0; } bool valid(string s){ //printf("checking %s\n",s.c_str()); vector<int> pref; for (int x = 0; x<s.size(); x++){ if (s[x]=='(') pref.push_back(1); else pref.push_back(-1); if (pref.size()>1){ pref.back() = (*----pref.end()) + pref.back(); } } int cc = pref.back(); if (cc&1) return false; for (int st = 0; st<s.size(); st++){ for (int en = st; en<s.size(); en++){ int t2 = cc - 2*(pref[en]-(st==0?0:pref[st-1])); if (t2!=0) continue; else{ vector<bool> tt; for (int x = 0; x<st; x++){ tt.push_back(s[x]=='('); } for (int x = st; x<=en; x++){ tt.push_back(s[x]==')'); } for (int x = en+1; x<s.size(); x++){ tt.push_back(s[x]=='('); } if (checkbr(tt)){ return true; } } } } return false; } string str; int ans = 0; main(){ int n; scanf("%d",&n); str.resize(n); vector<int> pos; for (int x = 0; x<n; x++){ scanf(" %c",&str[x]); if (str[x]=='x') pos.push_back(x); } for (int x = 0; x<(1<<(pos.size())); x++){ for (int y = 0; y<pos.size(); y++){ str[pos[y]] = (x&(1<<y))?'(':')'; } if (valid(str)){ ans++; } } printf("%d",ans); }

Compilation message (stderr)

securitygate.cpp: In function 'bool checkbr(std::vector<bool>)':
securitygate.cpp:6:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<bool>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 |     for (int x = 0; x<s.size(); x++){
      |                     ~^~~~~~~~~
securitygate.cpp: In function 'bool valid(std::string)':
securitygate.cpp:17:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (int x = 0; x<s.size(); x++){
      |                     ~^~~~~~~~~
securitygate.cpp:28:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for (int st = 0; st<s.size(); st++){
      |                      ~~^~~~~~~~~
securitygate.cpp:29:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         for (int en = st; en<s.size(); en++){
      |                           ~~^~~~~~~~~
securitygate.cpp:40:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |                 for (int x = en+1; x<s.size(); x++){
      |                                    ~^~~~~~~~~
securitygate.cpp: At global scope:
securitygate.cpp:55:2: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   55 |  main(){
      |  ^~~~
securitygate.cpp: In function 'int main()':
securitygate.cpp:65:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |         for (int y = 0; y<pos.size(); y++){
      |                         ~^~~~~~~~~~~
securitygate.cpp:57:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   57 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
securitygate.cpp:61:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   61 |         scanf(" %c",&str[x]);
      |         ~~~~~^~~~~~~~~~~~~~~
#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...