5分,样例全对,求大佬康康, 万分感谢!!!
查看原帖
5分,样例全对,求大佬康康, 万分感谢!!!
925385
lingyihan楼主2024/8/26 22:08
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,a[15],bh;
map <string,pair<bool,int> > mp;
signed main(){
	cin>>n;
	while (n--){
		bh++;
		string nm,id;
		cin>>nm>>id;
		memset(a,0,sizeof(a));
		bool f=0,bb=0;
		int cnt=1,cnt1=0,cnt2=0;
		for (int i=0;i<id.size();i++){
			if (id[i]-'0'==0&&f==0){
				bb=1;
				break;
			}
			if(id[i]-'0'>0&&id[i]-'0'<=9||id[i]-'0'==0&&f){
				f=1;
				a[cnt]=a[cnt]*10+(id[i]-'0');
			}
			else if (id[i]=='.'||id[i]==':'){
				if (id[i]=='.')cnt1++;
				else cnt2++;
				cnt++;
				f=0;
			}
		}
		if (a[1]>255||!a[1]||a[2]>255||!a[2]||a[3]>255||!a[3]||
		a[4]>255||!a[4]||a[5]>65535||!a[5]||bb||cnt1!=3||cnt2!=1){
			cout<<"ERR\n";
			continue;	
		}
		if (nm=="Server"){
			if (mp[id].first){
				cout<<"FAIL\n";
				continue;
			}
			else{
				cout<<"OK\n";
				mp[id].first=1;
				mp[id].second=bh;
				continue;
			}
		}
		else{
			if (mp[id].first){
				cout<<mp[id].second<<'\n';
				continue;
			}
			else{
				cout<<"FAIL\n";
				continue;
			}
		}
	}
	return 0;
}
2024/8/26 22:08
加载中...