Submission #864820

#TimeUsernameProblemLanguageResultExecution timeMemory
864820tolbiHomework (CEOI22_homework)C++17
100 / 100
190 ms124680 KiB
#include <bits/stdc++.h> using namespace std; int n; vector<int> ara; vector<int> son; string str; pair<int,int> solve(int l, int r){ if (r-l+1==1){ return {1,n}; } pair<int,int> lnode=solve(l+4,ara[l]-1); pair<int,int> rnode=solve(ara[l]+1,son[l]-1); pair<int,int> don={min(lnode.first,rnode.first),max(lnode.second,rnode.second)}; pair<int,int> orig = don; if (str[l+1]=='a'){ don.first=lnode.first+rnode.first; } else { int hh = n-lnode.second+1; int hh2 = n-rnode.second+1; don.second=n-(hh+hh2)+1; } return don; } int main(){ cin>>str; ara.resize(str.length(),-1); son.resize(str.length(),-1); n = (str.length()+6)/7; vector<int> poses; for (int i = 0; i < str.length(); i++){ if (str[i]=='(') poses.push_back(i-3); if (str[i]==',') ara[poses.back()]=i; if (str[i]==')') { son[poses.back()]=i; poses.pop_back(); } } pair<int,int> ans = solve(0,str.length()-1); cout<<ans.second-ans.first+1<<endl; }

Compilation message (stderr)

Main.cpp: In function 'std::pair<int, int> solve(int, int)':
Main.cpp:14:16: warning: variable 'orig' set but not used [-Wunused-but-set-variable]
   14 |  pair<int,int> orig = don;
      |                ^~~~
Main.cpp: In function 'int main()':
Main.cpp:31:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  for (int i = 0; i < str.length(); i++){
      |                  ~~^~~~~~~~~~~~~~
#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...