From 37b7e815612dec5655d2ee2363835e2075701ae6 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Wed, 29 Jun 2022 21:03:53 +0200 Subject: Solved the first 6 problems of codechef Starters --- codechef/DenseBracketSequence/main | Bin 39024 -> 24880 bytes codechef/DenseBracketSequence/main.cpp | 24 ++++++++---------------- 2 files changed, 8 insertions(+), 16 deletions(-) (limited to 'codechef/DenseBracketSequence') diff --git a/codechef/DenseBracketSequence/main b/codechef/DenseBracketSequence/main index 4682a3d..74af562 100755 Binary files a/codechef/DenseBracketSequence/main and b/codechef/DenseBracketSequence/main 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 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; } } - - -- cgit v1.2.3