You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
918 B
C++
34 lines
918 B
C++
#include <cctype>
|
|
#include <cstdio>
|
|
int gettype(char ch)
|
|
{
|
|
if (ch == '+' || ch == '-' || ch == '*' || ch == '/') return 1;
|
|
if (ch == '(' || ch == ')') return 2;
|
|
if (ch >= 'a' && ch <= 'c') return 3;
|
|
return -1;
|
|
}
|
|
int main()
|
|
{
|
|
char cur, prev = 0;
|
|
int bracket = 0;
|
|
while ((cur = getchar()) != ';')
|
|
{
|
|
if (gettype(cur) == 2) bracket = (cur == '(' ? bracket + 1 : bracket - 1);
|
|
if (gettype(cur) == -1) {
|
|
puts("ERROR 1");
|
|
return 0;
|
|
}
|
|
if ((gettype(cur) == gettype(prev) && gettype(cur) != 2) || (cur == '(' && gettype(prev) == 3) || (prev == ')' && gettype(cur) == 3)) {
|
|
puts("ERROR 3");
|
|
return 0;
|
|
}
|
|
if (bracket < 0) {
|
|
puts("ERROR 2");
|
|
return 0;
|
|
}
|
|
prev = cur;
|
|
}
|
|
puts(bracket == 0 ? "OK" : "ERROR 2");
|
|
return 0;
|
|
}
|