Cod sursa(job #3139424)

Utilizator DajaMihaiDaja Mihai DajaMihai Data 28 iunie 2023 10:43:44
Problema Grupuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>

using namespace std;

ifstream in ("par.in");
ofstream out ("par.out");

char stiva[5000];
char c;
int stvPos, n, sum;
bool noAdd;

int main()
{
    in >> n;
    if(n % 2)
        out << "-1";
    else {
        for(int i = 0; i < n; i ++){
            in >> c;
            noAdd = 0;
            if (stvPos && (stiva[stvPos - 1] == '(' && c == ')')){
                stvPos --; noAdd = 1;
            }
            if(noAdd == 0){
                stiva[stvPos] = c;
                stvPos ++;
            }
        }
        if(stvPos % 2 == 0){
            int i = stvPos - 1;
            while(i >= 0 && i != -1){
                if(i && stiva[i] == '(' && stiva[i-1] == '('){
                    sum ++; i -= 2;
                }
                if (i && stiva[i] == ')' && stiva[i-1] == ')'){
                    sum ++; i -= 2;
                }
                if (i && stiva[i] == '(' && stiva[i-1] == ')'){
                    sum += 2; i -= 2;
                }
            }
            out << sum;
        }
        else
            out << "-1";
    }
    return 0;
}





/// (( 1
/// )) 1
/// )( 2
/// )))(
///
///