dalao救救我吧,所有帖子基本看完了,还是找不到。。。
#include<bits/stdc++.h>
using namespace std;
//a.b.c.d:e
//0≤a,b,c,d≤255,0≤e≤65535
long long y;
string yh,dz;
long long a1=0,a2=255,a3=65535,bz[1005][7],jq;
long long pd(string s)
{
int z=s.size();
int k=0;
if(s[0]=='.'||s[0]==':'||s[z]==':'||s[z]=='.') return 1;
for(int i=0;i<z;i++)
{
if(k==1&&(s[i]=='.'||s[i]==':')) return 1;
else if(s[i]=='.'||s[i]==':') k=1;
else k=0;
}
return 0;
}
long long dg()
{
if(dz[y]=='-') return -1;
if(dz[y]=='0'&&dz[y+1]!='.') return -1;
long long a=0;
for(;y<dz.size();y++)
{
if(dz[y]=='.')
{
y++;
break;
}
a=a*10+(dz[y]-'0');
}
if(y==dz.size()) return -1;
return a;
}
long long dg1()
{
if(dz[y]=='-') return -1;
if(dz[y]=='0'&&dz[y+1]!=':') return -1;
long long a=0;
for(;y<dz.size();y++)
{
if(dz[y]==':')
{
y++;
break;
}
a=a*10+(dz[y]-'0');
}
if(y==dz.size()) return -1;
return a;
}
long long ok(long long a,long long b,long long c,long long d,long long e)
{
for(long long i=1;i<=jq;i++)
{
if(a==bz[i][1]&&b==bz[i][2]&&c==bz[i][3]&&d==bz[i][4]&&e==bz[i][5])
{
printf("FAIL\n");
return 0;
}
}
return 1;
}
int main()
{
long long n;
scanf("%lld",&n);
for(long long i=1;i<=n;i++)
{
y=0;
cin>>yh>>dz;
if(yh=="Server")
{
if(pd(dz)) {printf("ERR\n");continue;}
long long a=0,b=0,c=0,d=0,e=0;
a=dg();
b=dg();
c=dg();
d=dg1();
if(dz[y]=='-'||(dz[y]=='0'&&dz[y+1]!=0)) e=-1;
else for(;y<dz.size();y++) e=e*10+(dz[y]-'0');
if(a>=a1&&a<=a2&&b>=a1&&b<=a2&&c>=a1&&c<=a2&&d>=a1&&d<=a2&&e>=a1&&e<=a3)
{
if(ok(a,b,c,d,e))
{
printf("OK\n");
jq++;
bz[jq][1]=a;
bz[jq][2]=b;
bz[jq][3]=c;
bz[jq][4]=d;
bz[jq][5]=e;
bz[jq][6]=i;
}
}
else printf("ERR\n");
}
else
{
if(pd(dz)) {printf("ERR\n");continue;}
long long a=0,b=0,c=0,d=0,e=0;
a=dg();
b=dg();
c=dg();
d=dg1();
if(dz[y]=='-'||(dz[y]=='0'&&dz[y+1]!=0)) e=-1;
else for(;y<dz.size();y++) e=e*10+(dz[y]-'0');
if(a>=a1&&a<=a2&&b>=a1&&b<=a2&&c>=a1&&c<=a2&&d>=a1&&d<=a2&&e>=a1&&e<=a3)
{
long long o=0;
for(long long i=1;i<=jq;i++)
{
if(a==bz[i][1]&&b==bz[i][2]&&c==bz[i][3]&&d==bz[i][4]&&e==bz[i][5])
{
o=1;
printf("%lld\n",bz[i][6]);
break;
}
}
if(o==0) printf("FAIL\n");
}
else printf("ERR\n");
}
}
}