5分求调QAQ
查看原帖
5分求调QAQ
1038710
AutumnQ楼主2023/8/28 21:48

只对了第一个点和hack,有的时候他会输出ERR

#include<bits/stdc++.h>
using namespace std;
string q[8005];
int a[8005];
int lenth=1;
bool check(string s){
	int mh=0,point=0,a[5],l=0;
	memset(a,0,sizeof(a));
	for(int i=0;i<s.size();){
		while(isdigit(s[i])){
			if(s[i]=='0' && a[l]==0)return false;
			a[l]=a[l]*10+(s[i]-'0');
			if(l<=3 && a[l]>255)return false;
			if(l==4 && a[4]>65535)return false;
			i++;
		}
		l++;
		if(s[i]!='.' && l<=3)return false;
		if(s[i]!=':' && l==4)return false;
		if(!isdigit(s[i+1]) && l<4)return false;
		if(l>5)return false;
		i++;
	} 
	return true;
}
int main(){
	//freopen("network.in","r",stdin);
	//freopen("network.out","w",stdout);
	int n;
	scanf("%d",&n);
	string op,pl;
	for(int i=1;i<=n;i++){
		cin>>op>>pl;
		if(check(pl)){
			if(op=="Server"){
				bool flag=false;
				for(int f=1;f<=lenth-1;f++){
					if(pl==q[f]){
						printf("FAIL\n");
						flag=true;
					}
				}
				if(!flag){
				printf("OK\n");
				q[lenth]=pl;
				a[lenth]=i;
				lenth++;					
				}
			}else{
				bool flg=false;
				for(int f=1;f<lenth;f++){
					if(pl==q[f]){
						printf("%d\n",a[f]);
						flg=true;
						break;
					}
				}
				if(!flg)printf("FAIL\n");	
			}
		}else printf("ERR\n");
	}
	
	return 0;
}
2023/8/28 21:48
加载中...