85分代码,大佬求调
查看原帖
85分代码,大佬求调
726444
taikongsha楼主2024/10/17 20:41
#include<bits/stdc++.h>
using namespace std;

int n;
string a,b;
set <string> s1;
map<string,int> mp;

int kkk(int l,int num,char c){
	if(num<4&&c!='.') return 0;
	if(num<5&&(l<0||l>255)) return 0;
	if(num==4&&c!=':') return 0;
	if(num>4)return 0;
	return 1;
}

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a>>b;
		int l=b.size(),ll=0,num=1,lll=0,p=1;
		for(int j=0;j<l;j++){
			if(b[j]=='.'||b[j]==':'){
//				cout<<ll<<" ";
				if(ll==0) ll++;
				if(ll<pow(10,lll-1)) p=0;
				else p=kkk(ll,num++,b[j]);
				ll=lll=0;
				if(p==0) break;
				continue;
			}
			ll=ll*10+b[j]-'0';
			if(ll>=100000){
				p=0;break;
			}
			lll++;
		}
		if(b[l-1]<'0'||b[l-1]>'9') p=0;
		else if(ll==0) ll++;
		if(b[0]<'0'||b[0]>'9') p=0;
		else if(ll<pow(10,lll-1)) p=0;
		else if(ll<0||ll>65535) p=0;
		if(p==0||num<5) {
//			cout<<ll<<" ";
			cout<<"ERR\n";
			continue;
		}
		if(a=="Server") {
			if(s1.count(b)) cout<<"FAIL\n";
			else{
				mp[b]=i;
				s1.insert(b);
				cout<<"OK\n";
			}
		}
		else {
			if(!s1.count(b)) cout<<"FAIL\n";
			else cout<<mp[b]<<'\n';
		}
	}
	return 0;
}
2024/10/17 20:41
加载中...