Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- stack<char> x;
- string s;
- int main(){
- ll ans = 0;
- cin >> s;
- if(s.size()%2 == 1){
- cout << "Impossible";
- return 0;
- }
- for(int i=0;i<s.size();i++){
- if(x.empty())
- x.push(s[i]);
- else if(x.top() == '('){
- switch(s[i]){
- case ')':
- x.pop();
- break;
- case '}':
- case ']':
- case '>':
- ans++;
- x.pop();
- break;
- default:
- x.push(s[i]);
- break;
- }
- }
- else if(x.top() == '{'){
- switch(s[i]){
- case '}':
- x.pop();
- break;
- case ')':
- case ']':
- case '>':
- ans++;
- x.pop();
- break;
- default:
- x.push(s[i]);
- break;
- }
- }
- else if(x.top() == '['){
- switch(s[i]){
- case ']':
- x.pop();
- break;
- case ')':
- case '}':
- case '>':
- ans++;
- x.pop();
- break;
- default:
- x.push(s[i]);
- break;
- }
- }
- else if(x.top() == '<'){
- switch(s[i]){
- case '>':
- x.pop();
- break;
- case ')':
- case ']':
- case '}':
- ans++;
- x.pop();
- break;
- default:
- x.push(s[i]);
- break;
- }
- }
- else{
- cout << "Impossible";
- return 0;
- }
- }
- if(x.size()==0)
- cout << ans;
- else
- cout << "Impossible";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement