WA65求助
查看原帖
WA65求助
556362
Unnamed114514楼主2021/10/23 23:13
#include<bits/stdc++.h>
using namespace std;
struct node{
	int a,b,c,d,e,id;
};
vector<node> g;
int n;
string s,s1;
bool pd(char s){
	return s<='9'&&s>='0';
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s>>s1;
		if(s1.size()>21){
			puts("ERR");
			continue;
		}
		bool t=0;
		int cnt=0,sum=0,a[5]={},k=0;
		for(int i=0,l=s1.size();i<l;i++){
			if(s1[i]=='-'){
				t=1;
				break;
			}
			if(s1[i]=='.')
				cnt++,k++;
			else if(s1[i]==':')
				k++,sum++;
			else{
				if(s1[i]=='0'){
					if((pd(s1[i-1]))||(!pd(s1[i-1])&&!pd(s1[i-1])))
						a[k]*=10;
					else{
						t=1;
						break;
					}
				} else
					a[k]=a[k]*10+s1[i]-'0';
			}
			if(cnt>3||sum>1||t||a[0]>255||a[1]>255||a[2]>255||a[3]>255||a[4]>65535){
				t=1;
				break;
			}
		}
		if(t){
			puts("ERR");
			continue;
		}
		k=-1;
		for(int i=0,l=g.size();i<l;i++){
			if(g[i].a==a[0]&&g[i].b==a[1]&&g[i].c==a[2]&&g[i].d==a[3]&&g[i].e==a[4]){
				k=i;
				break;
			}
		}
		if(s=="Server"){
			if(k==-1){
				puts("OK");
				node f=node({a[0],a[1],a[2],a[3],a[4],i});
				g.push_back(f);
			} else{
				puts("FAIL");
			}
		} else{
			if(k==-1)
				puts("FAIL");
			else
				printf("%d\n",g[k].id);
		}
	}
	return 0;
}
2021/10/23 23:13
加载中...