第1个出错测试点编号:#7
第1个出错测试点状态:WA
代码:
#include"stdio.h"
#include"iostream"
#include"string"
#include"string.h"
using namespace std;
bool check_err(string code){
int buckets[26];
memset(buckets,0,sizeof(buckets));
int cnt=0;
char tmp[100];
for(int i=0;i<code.size();i++){
if(code[i]=='F'){
buckets[code[i+2]-'a']++;
tmp[cnt++]=code[i+2];
}else if(code[i]=='E')
buckets[tmp[--cnt]-'a']--;
}
if(cnt)
return 1;
for(int i=0;i<26;i++)
if(buckets[i]>0)
return 1;
return 0;
}
bool check_time(string code,string time_){
time_.erase(0,2);//擦除O(
time_.erase(time_.size()-1,1);//擦除)
int _time;
if(time_=="1")
_time=0;
else{
time_.erase(0,2);//擦除n^
_time=0;
for(int i=0;i<time_.size();i++){
_time*=10;
_time+=time_[i]-'0';
}
}
int correct_time=0,cnt=0,tmp[100],k=0;
int flag=101;
for(int i=0;i<code.size();i++){
if(code[i]=='F'){
string a="",b="";
while(code[i+4]>='0'&&code[i+4]<='9'||code[i+4]=='n'){
a+=code[i+4];
code.erase(i+4,1);
}
code.erase(i+4,1);
while(code[i+4]>='0'&&code[i+4]<='9'||code[i+4]=='n'){
b+=code[i+4];
code.erase(i+4,1);
}
if(a=="n"&&b=="n"){
tmp[k++]=cnt;
}else if(a=="n"&&b!="n"&&flag==101){
tmp[k++]=cnt;
flag=cnt;
}else if(a!="n"&&b=="n"){
cnt++;
}else if(a!="n"&&b!="n"){
int A=0,B=0;
for(int j=0;j<a.size();j++){
A*=10;
A+=a[j]-'0';
}
for(int j=0;j<b.size();j++){
B*=10;
B+=b[j]-'0';
}
if(B<A&&flag==101)
flag=cnt;
else
tmp[k++]=cnt;
}
}else if(code[i]=='E'){
if(cnt==tmp[k-1])
k--;
else{
cnt--;
if(cnt<=flag)
flag=101;
}
}
if((cnt<flag?cnt:flag)>correct_time)
correct_time=(cnt<flag?cnt:flag);
}
return correct_time==_time;
}
int main(void){
int t;
scanf("%d",&t);
for(int i=0;i<t;i++){
string code="",time_,tmp;
int line;
scanf("%d",&line);
cin>>time_;
getline(cin,tmp);
for(int j=0;j<line;j++){
getline(cin,tmp);
code+=tmp;
}
if(check_err(code))
printf("ERR\n");
else if(check_time(code,time_))
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
该测试点用例输入:
3
44 O(n^3)
F a 42 50
F b 42 n
F c 39 77
F d 61 99
F e 36 37
F f n 28
F g 26 n
F h n 1
F i 68 n
F j 74 n
F k 51 n
F l 72 n
F m 4 n
F o 16 n
E
E
E
E
E
E
E
E
E
E
E
E
E
E
F a 10 59
F b 36 n
F c 61 76
F d 56 62
F e 28 n
F f 14 62
F g 69 n
F h 41 97
E
E
E
E
E
E
E
E
68 O(n^9)
F a 87 92
F b 70 n
F c 39 n
F d 69 n
F e 53 92
F f 86 n
F g 31 n
F h 48 90
F i 10 n
F j 64 n
F k 20 n
F l 33 n
F m n 63
E
E
E
E
E
E
E
E
E
E
E
E
E
F a 14 92
F b 74 n
F c 55 n
F d 9 n
F e 77 93
F f 61 63
F g 75 n
F h 29 56
F i 49 n
F j 65 n
F k 51 99
F l 64 n
F m 21 38
E
E
E
E
E
E
E
E
E
E
E
E
E
F a 13 n
F b 61 n
F c 34 n
F d 39 n
F e 14 n
F f 60 n
F g 25 43
F h 7 n
E
E
E
E
E
E
E
E
74 O(n^11)
F a 31 n
F b 31 n
F c 70 32
F d 35 92
F e 56 n
F f 64 n
F g 35 n
F h 25 n
F i 63 n
F j 2 n
F k 68 70
E
E
E
E
E
E
E
E
E
E
E
F a 53 59
F b 84 85
F c 17 n
F d 47 n
F e 20 57
F f 90 94
F g 90 98
F h 46 n
F i 44 n
F j 24 n
F k 9 n
E
E
E
E
E
E
E
E
E
E
E
F a 41 n
F b 2 48
F c 32 n
F d 43 n
F e 68 n
F f 53 n
F g 18 86
F h 20 n
F i 56 n
F j 87 n
F k 51 n
F l 90 94
F m 82 n
F o 55 n
F p 70 87
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
用例输出:
Yes
Yes
Yes
我的输出:
Yes
Yes
Yes
求大佬解答为什么评测姬会判我错?