75分求调 WA on#13 #14 #19 #20# 21
查看原帖
75分求调 WA on#13 #14 #19 #20# 21
922644
liumuxian楼主2024/6/27 21:19
#include <bits/stdc++.h>
using namespace std;
const int N=1010;
map<string,int> mp;
int ans[N];
bool check(string s){          //a.b.c.d:e
    int a=-1,b=-1,c=-1,d=-1,e=-1,flag,x=0;
    flag=0;
    for(int i=x;i<s.size();i++){//a
        if(s[i]=='.'){
            x=i+1;
            break;
        }
        if(flag==0&&s[i]-'0'==0&&s[i+1]!='.') return 0;
        else{
            if(a==-1) a=0;
            flag=1;
            a=a*10+(s[i]-'0');
        }
    }
    flag=0;
    for(int i=x;i<s.size();i++){//b
        if(s[i]=='.'){
            x=i+1;
            break;
        }
        if(flag==0&&s[i]-'0'==0&&s[i+1]!='.') return 0;
        else{
            if(b==-1) b=0;
            flag=1;
            b=b*10+(s[i]-'0');
        }
    }
    flag=0;
    for(int i=x;i<s.size();i++){//c
        if(s[i]=='.'){
            x=i+1;
            break;
        }
        if(flag==0&&s[i]-'0'==0&&s[i+1]!='.') return 0;
        else{
            if(c==-1) c=0;
            flag=1;
            c=c*10+(s[i]-'0');
        }
    }
    flag=0;
    for(int i=x;i<s.size();i++){//d
        if(s[i]==':'){
            x=i+1;
            break;
        }
        if(flag==0&&s[i]-'0'==0&&s[i+1]!=':') return 0;
        else{
            if(d==-1) d=0;
            flag=1;
            d=d*10+(s[i]-'0');
        }
    }
    flag=0;
    for(int i=x;i<s.size();i++){//e
        if(flag==0&&s[i]-'0'==0&&i+1!=s.size()) return 0;
        else{
            if(e==-1) e=0;
            flag=1;
            e=e*10+(s[i]-'0');
        }
    }
    if(a==-1||b==-1||c==-1||d==-1||e==-1) return 0;
    if(a<0||a>255||b<0||b>255||c<0||c>255||d<0||d>255||e<0||e>65535) return 0;
    return 1;
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        string as,s;
        cin>>as>>s;
        if(!check(s)){
            ans[i]=-1;
            continue;
        }
        if(as=="Server"){           //服务机
            if(mp[s]!=0) ans[i]=-2;
            else mp[s]=i;
        }
        else{                       //客户机
            if(mp[s]!=0){
                ans[mp[s]]=-3;
                ans[i]=mp[s];
            }
            else ans[i]=-2;
        }
    }
    for(int i=1;i<=n;i++){
        if(ans[i]==-1) cout<<"ERR"<<endl;
        else if(ans[i]==-2) cout<<"FAIL"<<endl;
        else if(ans[i]==-3) cout<<"OK"<<endl;
        else{
            if(ans[i]==0) cout<<"OK"<<endl;
            else cout<<ans[i]<<endl;
        }
    }
    return 0;
}

蒟蒻已崩溃,望大佬DEBUG

2024/6/27 21:19
加载中...