#include <bits/stdc++.h>
using namespace std;
#define int long long
struct clients{
char *ip;
int count;
};
vector<clients>servers;
bool check(char s[30]){
int num=0,cnt=0,len=strlen(s);
bool flag=0;
for(int i=0;i<len;i++){
if(i==0){
if(s[i]>='0' && s[i]<='9')num=s[i]-'0';
else return 0;
}
else{
if(s[i]>='0' && s[i]<='9'){
num=num*10+s[i]-'0';
if((num>255 && !flag) || num>65535)return 0;
}
else{
if(flag)return 0;
if(s[i]=='.')num=0,cnt++;
else if(s[i]==':'){
if(cnt!=3 || flag==1)return 0;
num=0;
flag=1;
}
else return 0;
}
}
}
if(flag && cnt==3)return 1;
return 0;
}
bool create_server(char s[30]){
int n=servers.size();
for(int i=0;i<n;i++)
{
if(s==servers[i].ip)
{
//printf("123\n");
return 0;
}
}
clients tmp;
tmp.ip=s;
tmp.count=0;
servers.push_back(tmp);
return 1;
}
int create_client(char s[30])
{
int n=servers.size();
for(int i=0;i<n;i++)
{
if(s==servers[i].ip)
{
servers[i].count++;
return servers[i].count;
}
}
return -1;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
//if(servers.size()>0)cout<<servers[0].ip<<endl;
char op[30],ad[30];
cin>>op>>ad;
//cout<<(&ad)<<" "<<(&servers[0].ip)<<endl;
//if(servers.size()>0)cout<<servers[0].ip<<endl;
if(check(ad))
{
if(op[0]=='S')
{
if(create_server(ad))printf("OK\n");
else printf("FAIL\n");
}
else
{
int ret=create_client(ad);
if(ret==-1)printf("FAIL\n");
else printf("%d\n",ret);
}
}
else printf("ERR\n");
int n=servers.size();/*
for(int i=0;i<n;i++)
{
printf("%s\n",servers[i].ip);
}
printf("\n");*/
}
return 0;
}
serversi .ip 本来是 1.1.1.2:1 ,当 ad 输入后,serversi .ip 竟然马上变成 ad 了!
地址也没有重合
求助!!!!!!!!!!