75pts求调
查看原帖
75pts求调
1228049
zhukaiting楼主2024/8/10 17:36

13、14、19、20、21没过,hack过了

#include<bits/stdc++.h>
using namespace std;
bool c,c1,c2;
char b[5];
int a[6],n,s,t;
string ad[1001],op[1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>op[i]>>ad[i];
		memset(a,-1,sizeof(a));
		memset(b,' ',sizeof(b));
		c=0;
		s=0;
		t=1;
		for(int j=0;j<ad[i].size();j++){
			if(ad[i][j]=='.'||ad[i][j]==':'){
				if(s==4){
					c=1;
					break;
				}
				b[++s]=ad[i][j];
			}
		}
		for(int j=1;j<=3;j++){
			if(b[j]!='.'){
				c=1;
				break;
			}
		}
		if(b[4]!=':')c=1;
		for(int j=0;j<ad[i].size();j++){
			if(t>5){
				c=1;
				break;
			}
			if(ad[i][j]>='0'&&ad[i][j]<='9'){
				if(a[t]==-1)a[t]=ad[i][j]-48;
				else if(a[t]>0)a[t]=a[t]*10+ad[i][j]-48;
				else if(a[t]==0){
					c=1;
					break;
				}
			}else t++;
		}
		for(int j=1;j<=4;j++){
			if(a[j]<0||a[j]>255){
				c=1;
				break;
			}
		}
		if(a[5]<0||a[5]>65535)c=1;
		if(c){
			cout<<"ERR"<<endl;
			continue;
		}
		if(op[i]=="Server"){
			c1=0;
			for(int j=1;j<i;j++){
				if(ad[i]==ad[j]&&op[j]=="Server"){
					cout<<"FAIL";
					c1=1;
					break;
				}
			}
			if(!c1)cout<<"OK";
		}else{
			c2=0;
			for(int j=1;j<i;j++){
				if(ad[i]==ad[j]&&op[j]=="Server"){
					cout<<j;
					c2=1;
					break;
				}
			}
			if(!c2)cout<<"FAIL";
		}
		cout<<endl;
	}
	return 0;
}
2024/8/10 17:36
加载中...