Guest User

Untitled

a guest
Apr 6th, 2017
2,089
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. //#define debug(...) printf( __VA_ARGS__ )
  5. #define debug(...) /****nothing****/
  6.  
  7. #define ll long long
  8. #define ull unsigned long long
  9. #define pb push_back
  10. #define mem(arr,val) memset(arr,val,sizeof(arr))
  11. #define mp make_pair
  12. #define pii pair<int,int>
  13. #define F first
  14. #define S second
  15. #define sz(x) (int)(x).size()
  16. #define nopos string::npos
  17. #define fr(i,a,b) for(i=a;i<=b;i++)
  18. #define frn(i,a,b) for(i=a;i>=b;i--)
  19. string s;
  20. int i,j,fi,la,sum,mx=0,t;
  21. vector<pair<int,int> > vct;
  22. stack<int> stk;
  23. int main()
  24. {
  25. //freopen("d://i.txt","r",stdin);
  26. //freopen("d://o.txt","w",stdout);
  27. cin>>t;
  28. while(t--)
  29. {
  30. cin>>s;
  31.  
  32. fi=la=0;
  33. mx=0;
  34.  
  35. for(i=0;i<s.size();i++)
  36. {
  37. if(s[i]=='(')
  38. {
  39. stk.push(i);
  40. vct.pb(make_pair(fi,la));
  41. }
  42. else
  43. {
  44. if(!stk.empty())
  45. fi=stk.top() , la=i , stk.pop();
  46. else
  47. {
  48. vct.pb(make_pair(fi,la));
  49. }
  50. }
  51.  
  52. }
  53. vct.pb(make_pair(fi,la) );
  54.  
  55. sum=0;
  56. for(i=1;i<vct.size();i++)
  57. {
  58. if(vct[i]==vct[i-1])
  59. continue;
  60.  
  61. if(vct[i].first==vct[i-1].second+1)
  62. sum+=vct[i].second-vct[i].first+1;
  63. else
  64. {
  65. mx=max(mx,sum);
  66. sum=vct[i].second-vct[i].first+1;
  67. }
  68. }
  69. mx=max(mx,sum);
  70. cout<<mx<<'\n';
  71. while(!stk.empty())
  72. stk.pop();
  73.  
  74. vct.clear();
  75. }
  76.  
  77.  
  78.  
  79. return 0;
  80. }
  81. /*
  82. 122
  83. ()((()))(((
  84. ()()
  85. {[)}(){[]}[)(())(())
  86. {(()))(((())))
  87. {(())(())[
  88. {](())
  89.  
  90. */
Advertisement
Add Comment
Please, Sign In to add comment