求助
查看原帖
求助
432126
s_cenxinyang楼主2021/11/3 21:27

95分,err部分错误

附代码

#include<bits/stdc++.h>
using namespace std;
string x,y,s[1001];
int sv,n;
bool err(string y)
{
    bool t=false;string zs="";long long l,c=0,cc=0;
    for(int i=0;i<y.size();++i)
    {
    	if(y[i]=='-')
    	  return true;
        if(y[i]>='0'&&y[i]<='9')
        {
            if(y[i]=='0'&&!t)
            {
            	if(i==y.size()-1)
            	  continue;
            	if(y[i+1]!='.'&&y[i+1]!=':')
                  return true;
            }else
            t=true;
            zs+=y[i];
        }
        if(y[i]=='.'||y[i]==':')
        {
        	if(y[i-1]=='.'||y[i-1]==':')
        	  return true;
            if(y[i]=='.')
              ++c;
            if(c>3)
              return true;
            if(y[i]==':')
            {
                ++cc;
                if(c<3)
                  return true;
            }
            if(cc>1)
              return true;
            t=false;
            stringstream ss;
            ss<<zs;
            ss>>l;
            zs="";
            if(l>255)
              return true;
        }
        if(i==y.size()-1)
        {
            t=false;
            stringstream ss;
            ss<<zs;
            ss>>l;
            zs="";
            if(l>65535)
              return true;
        }
    }
    if(cc!=1||c!=3)
      return true;
    if(y[y.size()-1]=='.'||y[y.size()-1]==':')
      return true;
    return false;
}
bool fd(string y)
{
    for(int i=1;i<=sv;++i)
      if(s[i]==y)
        return true;
    return false;
}
int fd1(string y)
{
    for(int i=1;i<=sv;++i)
      if(s[i]==y)
        return i;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>x;
        cin>>y;
        if(err(y))
        {
            cout<<"ERR"<<'\n';
            ++sv;
            continue;
        }
        if(x=="Server")
        {
            if(fd(y))
                cout<<"FAIL"<<'\n',++sv;else
                cout<<"OK"<<'\n',s[++sv]=y;
        }else
        {
            if(!fd(y))
              cout<<"FAIL"<<'\n';else
              cout<<fd1(y)<<'\n';
            ++sv;
        }
    }
    return 0;
}
2021/11/3 21:27
加载中...