65pts求调
查看原帖
65pts求调
1049868
freeHackerJava楼主2024/4/12 20:40

https://www.luogu.com.cn/record/155530008 源代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
set<string>st;
map<string,ll>mp;
int main(){
	//freopen("network.in","r",stdin);
	//freopen("network.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	ll n;
	cin>>n;
	for(ll i=1;i<=n;i++){
		string a,b;
		cin>>a>>b;
		bool flag=0;
		if(a=="Server"){
			ll t=0;
			ll x=0,y=0;
			for(auto it=b.begin();it!=b.end();++it){
				if((*it)=='0'&&(*(it+1)!='.'&&*(it+1)!=':')&&(*(it-1)=='.'||*(it-1)==':')){
					flag=1;
					break;
				}
				if((*it)=='.'||(*it)==':'){
					if((*it)=='.'){
						x++;
					}else{
						y++;
					}
					if(t>=256){
						flag=1;
						break;
					}else{
						t=0;
					}
				}else{
					t=t*10+(*it)-'0';
				}
			}
			if(t>=65536){
				flag=1;
			}
			if(x!=3||y!=1){
				flag=1;
			}
			if(flag==1){
				cout<<"ERR\n";
			}else{
				if((*st.find(b))==b){
					cout<<"FAIL\n";
				}else{
					cout<<"OK\n";
					st.insert(b);
					mp[b]=i;
				}
			}
		}else{
			ll t=0;
			ll x=0,y=0;
			for(auto it=b.begin();it!=b.end();++it){
				if((*it)=='0'&&(*(it+1)!='.'&&*(it+1)!=':')&&(*(it-1)=='.'||*(it-1)==':')){
					flag=1;
					break;
				}
				if((*it)=='.'||(*it)==':'){
					if((*it)=='.'){
						x++;
					}else{
						y++;
					}
					if(t>=256){
						flag=1;
						break;
					}else{
						t=0;
					}
				}else{
					t=t*10+(*it)-'0';
				}
			}
			if(t>=65534){
				flag=1;
			}
			if(x!=3||y!=1){
				flag=1;
			}
			if(flag==1){
				cout<<"ERR\n";
			}else{
				if((*st.find(b))==b){
					cout<<mp[b]<<"\n";
				}else{
					cout<<"FAIL\n";
				}
			}
		}
	}
	return 0;
}
2024/4/12 20:40
加载中...