65分求调
查看原帖
65分求调
360273
cfkk楼主2023/10/10 15:41
#include<bits/stdc++.h>
#define min(a,b)(a<b?a:b)
#define max(a,b)(a>b?a:b)
#define int long long
#define mod 1000000007
#define maxn 111111
#define maxm 2222222
#define inf 1e36
#define lowbit(i) (i&-i)
#define kill while(1){continue;}
#define fresh std::cout<<std::flush
#define pi acos(-1.0)
#define fri std::freopen(("data"+std::to_string(T)+".in").c_str(),"r",stdin);
#define fro std::freopen(("data"+std::to_string(T)+".out").c_str(),"w",stdout);
#define frw std::freopen(("data"+std::to_string(T)+".in").c_str(),"w",stdout);
using namespace std;
inline int read()
{
    char ch=getchar();
    int s=0,w=1;
    while(ch<'0'||ch>'9')
    {
        if(ch=='-'){w=-1;}
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        s=(s<<1)+(s<<3)+ch-48;
        ch=getchar();
    }
    return w*s;
}
inline void print(int x)
{
    if(x<0){putchar('-'),x=-x;}
    if(x>9){print(x/10);}
    putchar(x%10+'0');
}
inline int qpow(int a,int b,int p)
{
    int ans=1,base=a;
    while(b)
    {
        if(b&1){ans*=base;ans%=p;}
        base*=base;
        base%=p;
        b>>=1;
    }
    return ans%p;
}
inline int gcd(int a,int b){return !b?a:gcd(b,a%b);}
inline int lcm(int a,int b){return a*b/gcd(a,b);}
inline int log2(int n){int cnt=0;while(n){n/=2;cnt++;}return cnt;}
inline int qabs(int a){return a<0?-a:a;}
inline string read_char()
{
    char ch=getchar();
    string s;
    while(ch!=EOF&&ch!='\n')
    {
        s+=ch;
        ch=getchar();
    }
    return s;
}
inline void pc(int x)
{
    if(x==1)printf("\n");
    if(x==2)printf(" ");
    if(x==3)printf("YES");
    if(x==4)printf("Yes");
    if(x==5)printf("yes");
    if(x==6)printf("NO");
    if(x==7)printf("No");
    if(x==8)printf("no");
    if(x==9)printf("/");
    if(x==10)printf("+");
    if(x==11)printf("-");
    if(x==12)printf("*");
    if(x==13)printf("No Solution");
    if(x==14)printf("#");
    if(x==15)printf(".");
}
struct node{int a,b,c,d,e,ok;}ip[maxn];
bool init(string ad,int z)
{
    bool flag=0;
    int now=0;
    if(ad[now]=='-'){flag=1;}
    if(ad[now]=='0'&&ad[now+1]>='0'&&ad[now+1]<'9'){flag=1;}
    while(ad[now]!='.'&&!flag)
    {
        if(ad[now]==':'){flag=1;break;}
        ip[z].a=ip[z].a*10+(ad[now]-'0');now++;
    }now++;
    if(ad[now]=='-'){flag=1;}
    if(ad[now]=='0'&&ad[now+1]>='0'&&ad[now+1]<'9'){flag=1;}
    while(ad[now]!='.'&&!flag)
    {
        if(ad[now]==':'){flag=1;break;}
        ip[z].b=ip[z].b*10+(ad[now]-'0');now++;
    }now++;
    if(ad[now]=='-'){flag=1;}
    if(ad[now]=='0'&&ad[now+1]>='0'&&ad[now+1]<'9'){flag=1;}
    while(ad[now]!='.'&&!flag)
    {
        if(ad[now]==':'){flag=1;break;}
        ip[z].c=ip[z].c*10+(ad[now]-'0');now++;
    }now++;
    if(ad[now]=='-'){flag=1;}
    if(ad[now]=='0'&&ad[now+1]>='0'&&ad[now+1]<'9'){flag=1;}
    while(ad[now]!=':'&&!flag)
    {
        ip[z].d=ip[z].d*10+(ad[now]-'0');now++;
    }now++;
    if(ad[now]=='-'){flag=1;}
    if(ad[now]=='0'&&ad[now+1]>='0'&&ad[now+1]<'9'){flag=1;}
    while(now<ad.size()&&!flag){ip[z].e=ip[z].e*10+(ad[now]-'0');now++;}
    return flag;
}
bool check(string ad)
{
    int num1=0,num2=0;
    for(int i=0;i<ad.size();i++)
    {
        if(ad[i]=='.'){num1++;}
        if(ad[i]==':'){num2++;}
    }
    //cout<<num1<<" "<<num2<<endl;
    if(num1!=3){return 1;}
    if(num2!=1){return 1;}
    return 0;
}
signed main()
{
    //freopen("P7911_13.in","r",stdin);
    int T=read();
    for(int z=1;z<=T;z++)
    {
        string op,ad;
        cin>>op>>ad;
        bool vis=init(ad,z);
        if(check(ad)){vis=1;}
        if(ip[z].a>255||ip[z].b>255||ip[z].c>255||ip[z].d>255||ip[z].e>65535){vis=1;}
        //cout<<z<<":"<<ip[z].a<<" "<<ip[z].b<<" "<<ip[z].c<<" "<<ip[z].d<<" "<<ip[z].e<<endl;
        if(op=="Server")
        {
            ip[z].ok=1;
            bool flag1=0;
            for(int i=1;i<z;i++)
            {
                if(ip[i].a==ip[z].a&&ip[i].b==ip[z].b&&ip[i].c==ip[z].c&&ip[i].d==ip[z].d&&ip[i].e==ip[z].e&&ip[i].ok!=0){flag1=1;break;}
            }
            if(!flag1)
            {
                if(vis){puts("ERR");}
                else{puts("OK");}
            }
            else{puts("FAIL");}
        }
        else
        {
            int flag1=0;
            for(int i=1;i<z;i++)
            {
                if(ip[i].a==ip[z].a&&ip[i].b==ip[z].b&&ip[i].c==ip[z].c&&ip[i].d==ip[z].d&&ip[i].e==ip[z].e&&ip[i].ok!=0){flag1=i;break;}
            }
            if(vis){puts("ERR");}
            else
            {
                if(flag1>0){print(flag1);pc(1);}
                else{puts("FAIL");}
            }
        }
    }
    return 0;
}
/*
10
Server 192.168.1.1:80
Client 192.168.1.1:80
Client 192.168.1.1:8080
Server 192.168.1.1:80
Server 192.168.1.1:8080
Server 192.168.1.999:0
Client 192.168.1.1.8080
Client 192.168.1.1:8080
Client 192.168.1.1:80
Client 192.168.1.999:0
*/

17、18WA
13、14、19、20、21RE

2023/10/10 15:41
加载中...