fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. char ch[2005];
  5. string str;
  6.  
  7. int solve(int k,int open){
  8. if(k == str.size()) {
  9. if(open == 0) return 0;
  10. return 1e9;
  11. }
  12.  
  13. char cur = str[k];
  14. if(cur == '}' && open == 0){
  15. return 1 + solve(k + 1, open + 1);
  16. } else if(cur == '{' && open == 0){
  17. return solve(k + 1, open + 1);
  18. } else if(cur == '}' && open > 0){
  19. return min(solve(k + 1, open - 1), 1 + solve(k + 1, open + 1));
  20. }
  21. else if(cur=='{' && open>0){
  22. return min(solve(k + 1, open + 1), 1 + solve(k+1,open-1));
  23. }
  24. return 0;
  25. }
  26.  
  27. int main(){
  28. int k=1;
  29. while(scanf("%s",ch)){
  30. if(ch[0]=='-')break;
  31. string strtmp(ch);
  32. str = strtmp;
  33. memset(ch,'\0',sizeof(ch));
  34. int ans=solve(0,0);
  35. printf("%d. %d\n",k++,ans);
  36. }
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 2820KB
stdin
{{{}
--
stdout
1. 1