loulett

HW3_brackets3

Dec 16th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cstdlib>
  3.  
  4. int main()
  5. {
  6.     int n = 0, k = -1, fl = 0;
  7.     scanf("%d", &n);
  8.     char* arr = (char*)malloc(n+1);
  9.     scanf("%s", arr);
  10.     arr[n] = 0;
  11.     char* stack = (char*)malloc(n);
  12.     for (int i = 0; i < n; i++)
  13.     {
  14.         if (arr[i] == '(' || arr[i] == '[' || arr[i] == '{')
  15.         {
  16.             k++;
  17.             stack[k] = arr[i];
  18.         }
  19.         else if (arr[i] == ')' || arr[i] == ']' || arr[i] == '}')
  20.         {
  21.             if (k == -1)
  22.             {
  23.                 fl = 1;
  24.                 break;
  25.             }
  26.             if ((arr[i] == ')' && stack[k] == '(') || (arr[i] == ']' && stack[k] == '[') || (arr[i] == '}' && stack[k] == '{'))
  27.                 k--;
  28.             else
  29.             {
  30.                 fl = 1;
  31.                 break;
  32.             }
  33.         }
  34.     }
  35.     if (k != -1)
  36.         fl = 1;
  37.     if (fl == 0)
  38.         printf("OK\n");
  39.     else
  40.         printf("ERROR\n");
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment