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;
}