Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <assert.h>
- #include <bits/stdc++.h>
- #include <stack>
- using namespace std;
- #define MAXN 10000
- int controlla(int N, char E[]) {
- int i,j,k;
- char temp;
- stack <char> Con;
- if(N%2==0){
- for(i=0;i<N;i++){
- if(E[i] == '(' || E[i] == '{' || E[i] == '<'|| E[i] == '['){
- Con.push(E[i]);
- }else if( E[i] == ')' || E[i] == '}' || E[i] == '>' || E[i] == ']' ){
- temp=E[i];
- if(temp == ')'){
- temp--;
- }else{
- temp=temp-2;
- }
- if(!Con.empty()){
- if(temp==Con.top()){
- Con.pop();
- }else{
- return -1;
- }
- }else{
- return -1;
- }
- }
- }
- }else {
- return -1;
- }
- return 0;
- }
- char E[MAXN + 5]; // Maggiore di MAXN per contenere newline e null
- int main() {
- FILE *fr, *fw;
- int N, i;
- fr = fopen("input.txt", "r");
- fw = fopen("output.txt", "w");
- assert(1 == fscanf(fr, "%d\n", &N));
- assert(fgets(E, MAXN + 5, fr) == E);
- E[N] = 0;
- if (controlla(N, E) < 0)
- fprintf(fw, "malformata\n");
- else
- fprintf(fw, "corretta\n");
- fclose(fr);
- fclose(fw);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement