aboutsummaryrefslogtreecommitdiff
path: root/codechef/DenseBracketSequence
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2022-06-29 21:03:53 +0200
committeromagdy7 <omar.professional8777@gmail.com>2022-06-29 21:03:53 +0200
commit37b7e815612dec5655d2ee2363835e2075701ae6 (patch)
tree5c0b5e5fcf0c383c0e63c5c86524334630b35139 /codechef/DenseBracketSequence
parent1b8f7c9d4eb8b767d32dbbbfd96662b73c037627 (diff)
downloadcompetitive-programming-37b7e815612dec5655d2ee2363835e2075701ae6.tar.xz
competitive-programming-37b7e815612dec5655d2ee2363835e2075701ae6.zip
Solved the first 6 problems of codechef Starters
Diffstat (limited to 'codechef/DenseBracketSequence')
-rwxr-xr-xcodechef/DenseBracketSequence/mainbin39024 -> 24880 bytes
-rw-r--r--codechef/DenseBracketSequence/main.cpp24
2 files changed, 8 insertions, 16 deletions
diff --git a/codechef/DenseBracketSequence/main b/codechef/DenseBracketSequence/main
index 4682a3d..74af562 100755
--- a/codechef/DenseBracketSequence/main
+++ b/codechef/DenseBracketSequence/main
Binary files differ
diff --git a/codechef/DenseBracketSequence/main.cpp b/codechef/DenseBracketSequence/main.cpp
index 6785a12..e26df3c 100644
--- a/codechef/DenseBracketSequence/main.cpp
+++ b/codechef/DenseBracketSequence/main.cpp
@@ -12,22 +12,14 @@ int main() {
cin >> n;
string s;
cin >> s;
- int count = 0;
- stack<char> st;
- st.push(s[0]);
- for(int i = 1; i < n; i++) {
- if(s[i] == '(') {
- st.push('(');
- }
- if(s[i] == ')') {
- if(st.top() == '(' && !st.empty()){
- st.pop();
- count++;
- }
- }
+ int cls = count(s.begin(), s.end(), ')');
+ int opn = 0;
+ int ans = 0;
+ for (int i = 0; i < n; i++) {
+ cls -= (s[i] == ')');
+ opn += (s[i] == '(');
+ ans = max(ans, min(opn, cls));
}
- cout << count << endl;
+ cout << n - ans * 2 << endl;
}
}
-
-