#include<bits/stdc++.h>
using namespace std;
string s[1005];
string c[1005];
int pp=0,k=0;
void pd(string x){
int a=1,l=0;
for(int i=0;i<=x.size()-1;i++){
while(a!=5){
while(x[i]!='.'){
if(x[l]=='0'){
cout << "ERR" << endl;
pp=1;
return;
}k+=x[i]-'0';
k*=10;
i++;
}a++;
if(k/10>255){
cout << "ERR" << endl;
pp=1;
return;
}k=0;
}l=i;
while(x[i]!='.'){
if(x[l]=='0'){
cout << "ERR" << endl;
pp=1;
return;
}k+=(x[i]-'0');
if(x[i+1]>='0' && x[i+1]<='9'){
k*=10;
}i++;
}a++;
if(k/10>65535){
cout << "ERR" << endl;
pp=1;
return;
}k=0;
}
}
int main(){
int n,sn=0,cn=0;
string a;
cin >> n;
for(int i=1;i<=n;i++){
pp=0;
cin >> a;
if(a=="Server"){
sn++;
cin >> s[sn];
pd(s[sn]);
if(pp==1){
continue;
}
for(int j=1;j<=sn;j++){
if(s[j]==s[sn]){
cout << "FAIL" << endl;
sn--;
break;
}
}if(s[sn++]!=""){
cout << "OK" << endl;
}
}else{
cn++;
cin >> c[cn];
pd(s[sn]);
if(pp==1){
continue;
}
for(int j=1;j<=sn;j++){
if(s[j]==c[cn]){
cout << j;
break;
}
}cout << "FAIL" << endl;
}
}
return 0;
}
为什么k赋初值就出错