25分!求调!
查看原帖
25分!求调!
1385803
TH__HT楼主2024/9/23 20:24

本蒟蒻不知是哪出了问题求大佬救命!

#include<bits/stdc++.h>
using namespace std;
int o,b,c,d,e,n,t,w;
string p,q,op[1001];
bool qp(string a){
	int x=0,z=0,as=1;
	for(int i=0;i<=a.length();i++){
		if(a[i]=='.'&&i==0)return false;
		if(a[i]==':'&&i==a.length())return false;
		if((i==0||a[i-1]>'9'||a[i-1]<'0')&&a[i]=='0'&&(a[i+1]>='0'&&a[i+1]<='9'))return false;
		if(a[i]=='.'&&a[i+1]=='.')return false;
		if(a[i]=='.'&&a[i+1]==':')return false;
		if(a[i]=='.')x++;
		if(a[i]==':')z++;
		if(x!=3&&z>0)return false;
		if(x>3)return false;
		if(z>1)return false;
	}
	if(x<3||z<1)return false;
	for(int i=1;i<=a.length();i++){
		if(a[i]=='.'||a[i]==':'){as++;continue;}
		if(as==1)o=o*10+(a[i]-'0');
		if(as==2)b=b*10+(a[i]-'0');
		if(as==3)c=c*10+(a[i]-'0');
		if(as==4)d=d*10+(a[i]-'0');
		if(as==5)e=e*10+(a[i]-'0');
	}
	if(o>=256&&b>=256&&c>=256&&d>=256&&e>=65536)return true;
	return true;
}
int as(string a){
	for(int i=1;i<=w;i++)
		if(op[i]==a)return i;
	return 0;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>p>>q;
		if(qp(q)){
			if(p=="Server"){
				if(as(q))cout<<"FAIL"<<endl;
				else{op[++w]=q;cout<<"OK"<<"\n";}
			}
			else{
				if(as(q))cout<<as(q)+t<<endl;
				else cout<<"FAIL"<<endl;
			}
		}
		else{if(p=="Server")t+=1;cout<<"ERR"<<endl;}
	}
}
2024/9/23 20:24
加载中...