74pts求调
查看原帖
74pts求调
1143232
YUQI_George楼主2024/10/19 11:24
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<string>
using namespace std;
typedef long long ll;
int n;
struct node{
    string name;
    string data;
}a[1100];
bool checkS(string data){
    ll a=data.size();
    if(a>21) return 0;
    string s="";
    ll check=0;
    ll check1=0;
    for(int i=0;i<a;i++){
        
        if(data[i]=='.'||data[i]==':'){
            check++;
            if(data[i]==':') check1++;
            if(i==0) return 0;
            
        }
    }
    if(check1==0||check1>1) return 0;
    if(check!=4) return 0;
    for(int i=0;i<a;i++){
        if(data[i]!='.'&&data[i]!=':'){
            s=s+data[i];
        }else{
            if(data[i]=='.'||data[i]==':'){
                if(s[0]=='0'&&s.size()>=2) return 0;
                if(stol(s)<=255){
                    s="";
                    continue;
                }else{
                    return 0;
                }
            }
        }
    }
//    cout<<s;
    if(s[0]=='0'&&s.size()>=2) return 0;
    if(stol(s)<=65536){
        return 1;
    }
    return 0;
}


int main(){
    ios::sync_with_stdio(0);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].name>>a[i].data;
        bool f=checkS(a[i].data);
        if(a[i].name=="Server"){
            
            
            if(f){
                
                bool t=0;
                for(int j=1;j<i;j++){
                    if(a[j].name=="Server"&&(a[j].data==a[i].data)){
                        t=1;
                    }
                }
                if(t){
                    cout<<"FAIL"<<endl;
                }else{
                    cout<<"OK"<<endl;
                }
                
                
            }else{
                cout<<"ERR"<<endl;
            }
         
            
        }
        
        else{
            
            
            if(f){
                
                bool t=0;
                ll dizhi=0;
                for(int j=1;j<i;j++){
                    if(a[j].name=="Server"&&(a[j].data==a[i].data)){
                        t=1;
                        dizhi=j;
                        break;
                    }
                }
                
                if(t){
                    cout<<dizhi<<endl;
                }else{
                    cout<<"FAIL"<<endl;
                }
                
            }else{
                cout<<"ERR"<<endl;
            }
            
            
        }
    }
    return 0;
}



2024/10/19 11:24
加载中...