大佬求助,为什么5分啊?
查看原帖
大佬求助,为什么5分啊?
653212
shensiyuan2011楼主2022/8/18 20:59

只过了没分的#1和5分的#2,不知道哪错了,大佬求调。

#include <bits/stdc++.h>
using namespace std;
map <string,int>IP;
bool bo(string a,string b){//判断IP地址的每一位是否没超标。
	if (a.size()!=b.size())return a.size()<b.size();
	else return a<=b; 
}
int main(){
	ios::sync_with_stdio(false);//只是输入输出优化
	int n,size,bh=0,bb;//bb判断是否有4个符号,即 . . . :。
	bool f;
	string id,s,x;
	cin>>n;
	while (n--){
		cin>>id>>s;//输入
		size=s.size();
		bh++,bb=0,x="",f=1;
		for (int i=0;i<size;i++){//处理IP地址
			if (s[i]>='0'&&s[i]<='9')x+=s[i];
			else {
				bb++;
				if (bb==4&&s[i]!=':'){//判断符号
					cout<<"ERR\n";
					f=0;
					break;
				}else if (((bb==3||bb==2||bb==1)&&s[i]!='.')){
					cout<<"ERR\n";
					f=0;
					break;
				}if (x[0]!='0'&&x!="0"&&(bo(x,"255")))x="";
				else{
					cout<<"ERR\n";
					f=0;
					break;
				}
			}
		}if (f){
			if (bb!=4){
		    	cout<<"ERR\n";
				continue;
			}if (x[0]!='0'&&x!="0"&&(bo(x,"65535"))){
				if (id=="Server"){
				    if (IP[s])cout<<"FAIL\n";
					else{
						IP[s]=bh;
						cout<<"OK\n";
					}
				}else if (!IP[s])cout<<"FAIL\n";
				else cout<<IP[s]<<'\n';
			}else cout<<"ERR\n";
		}
	}return 0;
}

帮忙看看错在哪,自己调了半天没调出来。

2022/8/18 20:59
加载中...