蒟蒻90pts 代码求助!求调试,求Hack!
查看原帖
蒟蒻90pts 代码求助!求调试,求Hack!
484780
husy楼主2021/11/6 19:47

求调试,求Hack数据

#include<bits/stdc++.h>
using namespace std;
int n,cnt;
char op[7];
map<string,bool>mp1;
map<string,int>mp2; 
bool check(string s)
{
	long long a=0,b=0,c=0,d=0,e=0,i=0;
	bool ok=0;
	while(s[i]>='0'&&s[i]<='9')
	{
		if(s[i]=='0'&&ok==0&&s[i+1]<='9'&&s[i+1]>='0')return 0;
		ok=1;
		a=a*10+s[i]-'0';
	    i++;
	}
	if(a>255||s[i]!='.'||(s[i+1]=='.'||s[i+1]==':')||i+1>=s.size())return 0;
	i++; 
	ok=0;
	while(s[i]>='0'&&s[i]<='9')
	{
		if(s[i]=='0'&&ok==0&&s[i+1]<='9'&&s[i+1]>='0')return 0;
		ok=1;
		b=b*10+s[i]-'0';
	    i++;
	}
	if(b>255||s[i]!='.'||(s[i+1]=='.'||s[i+1]==':')||i+1>=s.size())return 0;
	i++;
	ok=0;
	while(s[i]>='0'&&s[i]<='9')
	{
		if(s[i]=='0'&&ok==0&&s[i+1]<='9'&&s[i+1]>='0')return 0;
		ok=1;
		c=c*10+s[i]-'0';
	    i++;
	}
	if(c>255||s[i]!='.'||(s[i+1]=='.'||s[i+1]==':')||i+1>=s.size())return 0;
	i++;
	ok=0;
	while(s[i]>='0'&&s[i]<='9')
	{
		if(s[i]=='0'&&ok==0&&s[i+1]<='9'&&s[i+1]>='0')return 0;
		ok=1;
		d=d*10+s[i]-'0';
	    i++;
	}
	if(d>255||s[i]!=':'||(s[i+1]=='.'||s[i+1]==':')||i+1>=s.size())return 0;
	i++;
	ok=0;
	while(s[i]>='0'&&s[i]<='9')
	{
		if(s[i]=='0'&&ok==0&&s[i+1]<='9'&&s[i+1]>='0')return 0;
		ok=1;
		e=e*10+s[i]-'0';
	    i++;
	}
//	cout<<"&&&"<<endl;
	if(e>65535||s[i]=='.'||s[i]==':')return 0;
	//cout<<"&&&"<<endl;
	return 1;
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%s",op+1);
		string s;
		cin>>s;
		if(!check(s))puts("ERR");
		else if(op[1]=='S')
		{
			if(!mp1[s])
		    {
			    puts("OK");
			    mp1[s]=1,mp2[s]=i;
		    }
		    else if(mp1[s])puts("FAIL");
		}
		else if(op[1]=='C')
		{
		    if(!mp1[s])puts("FAIL");
		    else 
		    printf("%d\n",mp2[s]);
		}
	}
	return 0;
} 
2021/11/6 19:47
加载中...