Pagini recente » Cod sursa (job #1139695) | Cod sursa (job #1758037) | Cod sursa (job #871850) | Cod sursa (job #76326) | Cod sursa (job #3139424)
#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
/// )))(
///
///