喜提40分,过了自造的所有样例。能改尽量改,给个HACK也行。解决了无条件关注。
#include<bits/stdc++.h>
using namespace std;
int main(){
string a1[10005];
string a2[10005];
int i=0,i2=0,time;
long long sum=0;
while(1){
getline(cin,a1[i]);
if(a1[i]=="EOF") break;
for(int q=0,len=a1[i].length();q<len;q++){
if(a1[i][q]=='<'){
if(q>=1){
a1[i].erase(q-1,2);
len-=2;
q-=2;
}
else{
a1[i].erase(q,1);
len--;
q--;
}
}
}
i++;
}
while(1){
getline(cin,a2[i2]);
if(a2[i2]=="EOF") {
cin>>time;
break;
}
i2++;
}
for(int q=0;q<i2;q++){
for(int k=0,len=a2[q].length();k<len;k++){
if(a1[q][k]==a2[q][k]) sum++;
if(a2[q][k]=='<'){
if(k>=1){
if(a1[q][k-1]==a2[q][k-1]) sum--;
a2[q].erase(k-1,2);
len-=2;
k-=2;
}
else{
a2[q].erase(k,1);
len--;
k--;
}
}
}
}
int kmp=sum*60.0/time+0.5;
printf("%d\n",kmp);
return 0;
}
码风略丑