题解
2026-04-11 18:34:44
发布于:广东
#include <bits/stdc++.h>
using namespace std;
map<string, int> mp;
string s2;
string s3;
int judge(string s, int l, int r) {
int add = 0, x, y, f = 0;
string ss;
for (int i = r; i >= l; i--) {
if (s[i] == '(') add++;
else if (s[i] == ')') add--;
else if (add == 0 && f == 0 && (s[i] == '*' || s[i] == '/')) f = i;
else if (add == 0 && (s[i] == '+' || s[i] == '-')) {
x = judge(s, l, i - 1);
y = judge(s, i + 1, r);
if (x == 2 || y == 2) return 2;
if (s[i] == '+') return 3;
else if (s[i] == '-') {
if (y == 3) return 2;
else return 3;
}
}
}
if (f != 0) {
x = judge(s, l, f - 1);
y = judge(s, f + 1, r);
if (x == 2 || y == 2) return 2;
if (s[f] == '*') {
if (x == 3 || y == 3) return 2;
else return 4;
}
else if (s[f] == '/') {
if (x == 3 || y == 3 || y == 4) return 2;
else return 4;
}
}
else if (s[l] == '(' && s[r] == ')') {
if (judge(s, l + 1, r - 1) == 2) return 2;
else return 1;
}
else {
ss = "";
for (int i = l; i <= r; i++) ss += s[i];
if (mp[ss] != 0) return mp[ss];
else return 1;
}
return 1;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
string s;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> s;
if (s[s.length() - 1] == '#') cin >> s;
cin >> s;
getline(cin, s2);
s3 = "";
for (int j = 0; j < s2.length(); j++)
if (s2[j] != ' ') s3 += s2[j];
mp[s] = judge(s3, 0, s3.length() - 1);
}
getline(cin, s2);
s3 = "";
for (int j = 0; j < s2.length(); j++)
if (s2[j] != ' ') s3 += s2[j];
if (judge(s3, 0, s3.length() - 1) != 2)
cout << "OK" << endl;
else
cout << "Suspicious" << endl;
return 0;
}
测试点信息
#1
AC
30ms/40.00k#2
AC
30ms/40.00k#3
AC
30ms/52.00k#4
AC
30ms/8.00k#5
AC
30ms/64.00k#6
AC
62ms/16.00k#7
AC
30ms/4.00k#8
AC
30ms/0.00k#9
AC
62ms/36.00k#10
AC
30ms/0.00k#11
AC
0ms/8.00k#12
AC
62ms/8.00k#13
AC
62ms/52.00k#14
AC
62ms/48.00k#15
AC
0ms/44.00k#16
AC
62ms/68.00k#17
AC
30ms/32.00k#18
AC
30ms/28.00k#19
AC
30ms/44.00k#20
AC
62ms/36.00k#21
AC
30ms/60.00k#22
AC
30ms/0.00k#23
AC
30ms/12.00k#24
AC
62ms/56.00k#25
AC
30ms/0.00k#26
AC
62ms/0.00k#27
AC
0ms/28.00k#28
AC
30ms/60.00k#29
AC
30ms/52.00k#30
AC
30ms/0.00k#31
AC
30ms/64.00k#32
AC
30ms/16.00k#33
AC
30ms/44.00k#34
AC
92ms/40.00k#35
AC
62ms/36.00k#36
AC
30ms/44.00k#37
AC
0ms/52.00k#38
AC
62ms/0.00k#39
AC
30ms/32.00k#40
AC
62ms/16.00k#41
AC
30ms/48.00k#42
AC
62ms/0.00k#43
AC
62ms/40.00k#44
AC
30ms/8.00k#45
AC
30ms/8.00k#46
AC
30ms/52.00k#47
AC
92ms/0.00k#48
AC
30ms/60.00k#49
AC
30ms/0.00k#50
AC
30ms/64.00k#51
AC
30ms/16.00k#52
AC
62ms/60.00k#53
AC
30ms/32.00k#54
AC
0ms/64.00k#55
AC
62ms/0.00k#56
AC
30ms/44.00k#57
AC
30ms/48.00k#58
AC
30ms/20.00k#59
AC
0ms/48.00k#60
AC
30ms/32.00k#61
AC
30ms/4.00k#62
AC
62ms/8.00k#63
AC
30ms/40.00k#64
AC
30ms/40.00k#65
AC
62ms/56.00k#66
AC
30ms/36.00k#67
AC
0ms/64.00k#68
AC
30ms/36.00k#69
AC
30ms/16.00k#70
AC
30ms/56.00k#71
AC
30ms/48.00k#72
AC
30ms/0.00k#73
AC
92ms/12.00k#74
AC
30ms/44.00k#75
AC
30ms/16.00k#76
AC
62ms/28.00k#77
AC
30ms/0.00k#78
AC
30ms/48.00k#79
AC
0ms/32.00k#80
AC
62ms/28.00k#81
AC
92ms/40.00k#82
AC
0ms/48.00k#83
AC
62ms/28.00k#84
AC
62ms/48.00k#85
AC
0ms/40.00k#86
AC
92ms/48.00k#87
AC
30ms/52.00k#88
AC
30ms/68.00k#89
AC
62ms/0.00k#90
AC
92ms/0.00k#91
AC
92ms/32.00k#92
AC
62ms/36.00k#93
AC
62ms/0.00k#94
AC
62ms/0.00k#95
AC
30ms/68.00k#96
AC
30ms/4.00k#97
AC
30ms/56.00k#98
AC
30ms/44.00k#99
AC
30ms/68.00k#100
AC
30ms/44.00k#101
AC
30ms/32.00k#102
AC
62ms/12.00k#103
AC
30ms/8.00k#104
AC
0ms/16.00k#105
AC
92ms/60.00k#106
AC
62ms/48.00k#107
AC
30ms/44.00k#108
AC
30ms/40.00k#109
AC
30ms/40.00k#110
AC
30ms/0.00k#111
AC
30ms/44.00k#112
AC
30ms/0.00k#113
AC
30ms/0.00k#114
AC
62ms/48.00k#115
AC
124ms/0.00k#116
AC
62ms/44.00k#117
AC
30ms/56.00k#118
AC
30ms/0.00k#119
AC
62ms/24.00k#120
AC
0ms/72.00k#121
AC
0ms/64.00k#122
AC
30ms/36.00k#123
AC
30ms/0.00k#124
AC
92ms/0.00k#125
AC
30ms/52.00k#126
AC
62ms/28.00k#127
AC
30ms/24.00k#128
AC
62ms/0.00k#129
AC
30ms/0.00k#130
AC
62ms/48.00k#131
AC
0ms/36.00k#132
AC
62ms/4.00k#133
AC
30ms/44.00k#134
AC
30ms/52.00k#135
AC
30ms/0.00k#136
AC
0ms/48.00k#137
AC
30ms/4.00k#138
AC
0ms/48.00k#139
AC
这里空空如也








有帮助,赞一个