求助
查看原帖
求助
1108696
renhuangdi楼主2024/9/2 20:24

90分,wa了2个点

#include<bits/stdc++.h>
using namespace std;
int n;
string name,s;
map<string,int>mp;
bool check(string s){
    int bbb=0;
    int len=s.size();
    s=' '+s;
    int m=0;
    int cnt=0;
    long long shu=0;
    int cnt1=0,cnt2=0; 
    bool f=0;
   if(s[len]=='.'||s[len]==':')return 0; 
    for(int i=1;i<=s.size();i++){
        if((s[i]=='.'||s[i]==':')&&(s[i+1]=='.'||s[i+1]==':'))return 0;
    	if(s[i]=='0'&&i==1&&s[i+1]>='0'&&s[i+1]<='9')return 0;
        if(s[i]=='0'&&(s[i-1]=='.'||s[i-1]==':')&&s[i+1]>='0'&&s[i+1]<='9')return 0;
        if(s[i]>='0'&&s[i]<='9')shu=shu*10+(s[i]-'0');
		if(s[i]=='-')return 0;
        if(s[i]=='.')cnt1++,m++;
        if(s[i]==':')cnt2++,m++;
        if(cnt1>3)return 0;
        if(cnt2>1)return 0;
        if(m<=3&&s[i]==':')return 0;
        if(m==4&&s[i]=='.')return 0;
        if(s[i]=='.'||s[i]==':'){
            bbb++;
            if(cnt!=5){
                if(shu>255)return 0;
            }
            if(cnt==5)if(shu>65535)return 0;
            shu=0;
            cnt++;
            f=0;
        }
    }
    if(s[len]>='0'&&s[len]<='9')bbb++;
    if(shu>65535)return 0;
    if(bbb!=5)return 0;
    if(m!=4)return 0;
    return 1;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>name>>s;
       	if(check(s)==0){
            cout<<"ERR\n";
            continue;
        }
        if(name=="Server"){
            if(mp[s]!=0)cout<<"FAIL\n";
            else {
                cout<<"OK\n";
                mp[s]=i;
            }
        }
        else{
            if(mp[s]!=0)cout<<mp[s]<<"\n";
            else cout<<"FAIL\n";
        }
    }
    return 0;
}

大佬求调

2024/9/2 20:24
加载中...