80分求助
查看原帖
80分求助
539495
what_else楼主2022/5/4 20:25
#include<iostream>
#include<cstdio>
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
int p;
string barbiq;
struct node{
    int a,b,c,d,e;
    int mode;
    int ans;
}c[1001];
int main(){
    cin>>p;
    for(int n=1;n<=p;n++){
        char mo[7];
        cin>>mo;
        if(strcmp(mo,"Server")==0){
            c[n].mode=1;
        }
        else c[n].mode=2;
        cin>>barbiq;
        
        sscanf(barbiq.c_str(),"%d%c%d%c%d%c%d%c%d",&c[n].a,&mo[1],&c[n].b,&mo[2],&c[n].c,&mo[3],&c[n].d,&mo[4],&c[n].e);
        char check[300],pip[300];
        sprintf(pip,"%d.%d.%d.%d:%d",c[n].a,c[n].b,c[n].c,c[n].d,c[n].e);
        int yu;
        for(yu=0;yu<barbiq.length();yu++){
            if(barbiq[yu]!=pip[yu]){
                c[n].ans=3;
                break;
            }
        }
        if(yu!=barbiq.length())continue;
        if(!(mo[1]=='.'&&mo[2]=='.'&&mo[3]=='.'&&mo[4]==':'&&c[n].a>=0&&c[n].a<=255&&c[n].b>=0&&c[n].b<=255&&c[n].c>=0&&c[n].c<=255&&c[n].d>=0&&c[n].d<=255&&c[n].e>=0&&c[n].e<=65535))c[n].ans=3;
        if(c[n].ans==0){
            if(c[n].mode==1){
           int i;
           for(i=1;i<n;i++)
           if(c[i].a==c[n].a&&c[i].b==c[n].b&&c[n].c==c[i].c&&c[n].d==c[i].d&&c[n].e==c[i].e&&c[i].mode==1)break;
           if(i==n) c[n].ans=1; else c[n].ans=2;
            }
            if(c[n].mode==2){
            int i;
           for(i=1;i<n;i++)
           if(c[i].a==c[n].a&&c[i].b==c[n].b&&c[n].c==c[i].c&&c[n].d==c[i].d&&c[n].e==c[i].e&&c[i].mode==1)break;
           if(i==n) c[n].ans=2; else c[n].ans=100+i;
            }
        }

    }
    for(int n=1;n<=p;n++){
        if(c[n].ans==1)printf("OK\n");
        else if(c[n].ans==2)printf("FAIL\n");
        else if(c[n].ans==3)printf("ERR\n");
        else if(c[n].ans>=100)printf("%d\n",c[n].ans-100);

    }
    return 0;
}
2022/5/4 20:25
加载中...