25分P7911求调
  • 板块题目总版
  • 楼主DrinkQ
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/12/2 21:44
  • 上次更新2023/12/3 08:40:59
查看原帖
25分P7911求调
797855
DrinkQ楼主2023/12/2 21:44
#include <bits/stdc++.h>
using namespace std;
char dz[27];
string slst[5005],na;
int n,lls=0,all=0,num[5005];
bool pd(char uu[]){
	int s1=0,s2=0,lon=strlen(uu),b,c,d,e,f;
	for(int j=0;j<lon;j++){
		if(uu[j]=='.') s1++;
		if(uu[j]==':') s2++;
		if(uu[j]=='0' && (uu[j+1]-0<=57 && uu[j+1]-0>=48)){
			if(j==0) return false;
			if(uu[j-1]=='.'||uu[j-1]==':') return false;
		}
	}
	if(s1!=3 || s2!=1) return false;
	sscanf(uu,"%d.%d.%d.%d:%d",&b,&c,&d,&e,&f);
	if(d<0 || d>255) return false;
	if(b<0 || b>255) return false;
	if(c<0 || c>255) return false;
	if(e<0 || e>255) return false;
	if(f<0 || f>65535) return false;
	return true;
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>na>>dz;
		if(pd(dz)){
			if(na=="Server"){
				for(int j=0;j<lls;j++){
					if(slst[j]==dz){
						cout<<"FAIL"<<endl,all=1;
						break;
					}
				}
				if(all==0)cout<<"OK"<<endl;
				all=0;
				slst[lls]=dz,num[lls]=i+1,lls++;
			}
			if(na=="Client"){
				for(int j=0;j<lls;j++){
					if(slst[j]==dz){
						cout<<num[j]<<endl,all=1;
						break;
					}
				}
				if(all==0)cout<<"FAIL"<<endl;
				all=0;
			}
		}
		else cout<<"ERR"<<endl;
		}
	return 0;
}

下载了测试数据,在本地运行没看出什么问题(当然1000行的输出也没有逐行比对),感觉很迷惑

2023/12/2 21:44
加载中...