全RE,qwq,玄关
查看原帖
全RE,qwq,玄关
1025407
xlx711楼主2024/8/23 15:01
#include<bits/stdc++.h>
using namespace std;
int n,sz[10001][1005],sk[10001][1005],topp,t,e,gg,g;
string x,op;
bool f[100001];
bool assd(){
	long long p[1005],l=0,pp,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
	if(x[0]==0&&x[1]!='.')return false;
	for(int k=0;k<x.size();k++){
		if(x[k]=='.')p[++l]=k;
		else if(x[k]==':'&&l<3)return false;
		else if(x[k]==':'&&l==3)pp=k;
		if(l>3)return false;
	}
	//////////////////////////////////////////////
	for(int k=0;k<p[1];k++){
		sum1=sum1*10+(x[k]-'0');
	}
	if(sum1>255||sum1<0)return false;
	//////////////////////////////////////////////
	if(x[p[1]+1]=='0'&&x[p[1]+2]!='.')return false;
	for(int k=p[1]+1;k<p[2];k++){
		sum2=sum2*10+(x[k]-'0');
	}
	if(sum2>255||sum2<0)return false;
	//////////////////////////////////////////////
	if(x[p[2]+1]=='0'&&x[p[2]+2]!='.')return false;
	for(int k=p[2]+1;k<p[3];k++){
		sum3=sum3*10+(x[k]-'0');
	}
	if(sum3>255||sum3<0)return false;
	//////////////////////////////////////////////
	if(x[p[3]+1]=='0'&&x[p[3]+2]!='.')return false;
	for(int k=p[3]+1;k<pp;k++){
		sum4=sum4*10+(x[k]-'0');
	}
	if(sum4>255||sum4<0)return false;
	//////////////////////////////////////////////
	if(x[p[pp+1]]=='0'&&x[p[2]+2]!='.')return false;
	for(int k=pp+1;k<x.size();k++){
		sum5=sum5*10+(x[k]-'0');
	}
	if(sum5>65535||sum5<0)return false;
	//////////////////////////////////////////////
	if(op[0]=='S'){
	sz[++topp][0]=++e;
	sz[topp][1]=sum1;
	sz[topp][2]=sum2;
	sz[topp][3]=sum3;
	sz[topp][4]=sum4;
	sz[topp][5]=sum5;}
	else{
	sk[++t][0]=++e;
	sk[t][1]=sum1;
	sk[t][2]=sum2;
	sk[t][3]=sum3;
	sk[t][4]=sum4;
	sk[t][5]=sum5;
	}
	return true;
}
int main(){
	/*freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);*/
	//ios::sync_with_stdio(false);
	//cin.tie(),cout.tie();
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>op>>x;
		gg=0;
		if(assd()!=true){
			cout<<"ERR"<<endl;
			continue;
		}
		if(op[0]=='S'){
			memset(f,false,sizeof(f));
			for(int k=1;k<=5;k++){
				for(int j=1;j<topp;j++){
				if(sz[topp][k]!=sz[j][k])f[j]=1;
				}
			}
			for(int j=1;j<topp;j++){
				if(f[j]!=1){
				topp--;
				cout<<"FAIL"<<endl;
				gg=1;
				break;
				}
			}
			if(gg!=1){
				cout<<"OK"<<endl;
			}
		}
		else if(op[0]=='C'){
			memset(f,false,sizeof(f));
			for(int k=1;k<=5;k++){
				for(int j=1;j<=topp;j++){
				if(sk[t][k]!=sz[j][k]){
					f[j]=1;
				}
				}
			}
			for(int j=1;j<=topp;j++){
				if(f[j]==0){
				cout<<sz[j][0]<<endl;
				gg=1;
				break;
				}
			}
			if(gg!=1){
				cout<<"FAIL"<<endl;
			}
		}
	}
	return 0;
}
2024/8/23 15:01
加载中...