大片WA声,求调
查看原帖
大片WA声,求调
1096672
Chenhaoyang0318楼主2024/10/5 23:42
#include "iostream"
#include "cstdio"
#include "cstring"
#include "map"
using namespace std;
int n;
map<string,int> mp;
string a,b;
bool check (string s){
	int sum1=0,sum2=0;
	int l=s.size();
	for (int i=0;i<l;i++){
		if (s[i]=='.') sum1++;
		else if (s[i]==':') sum2++;
	}
	if (sum1!=3 || sum2!=1) return false;
	int i=0;
	long long s1=0;
	bool flag=0;
	while (s[i]!='.'){
		if (s1==0 && s[i]=='0') flag=1;
		s1=s1*10+(s[i]-'0');
		i++;
	}
	if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
	flag=0,s1=0;
	i++;
	while (s[i]!='.'){
		if (s1==0 && s[i]=='0') flag=1;
		s1=s1*10+(s[i]-'0');
		i++;
	}
	if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
	flag=0,s1=0;
	i++;
	while (s[i]!='.'){
		if (s1==0 && s[i]=='0') flag=1;
		s1=s1*10+(s[i]-'0');
		i++;
	}
	if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
	flag=0,s1=0;
	i++;
	while (s[i]!=':'){
		if (s1==0 && s[i]=='0') flag=1;
		s1=s1*10+(s[i]-'0');
		i++;
	}
	if ((flag==1 && s1>0) || (s1<0 || s1>255)) return false;
	flag=0,s1=0;
	i++;
	while (i<l){
		if (s1==0 && s[i]=='0') flag=1;
		s1=s1*10+(s[i]-'0');
		i++;
	}
	if ((flag==1 && s1>0) || (s1<0 || s1>65535)) return false;
	return true;
}
int main(){
	freopen ("P7911_13.in","r",stdin);
	freopen ("P7911.out","w",stdout);
	scanf ("%d",&n);
	for (int i=1;i<=n;i++){
		cin >> a >> b;
		if (a[0]=='S'){
			if (!check(b)) puts("ERR");
			else{
				if (mp[b]>0) puts("FAIL");
				else{
					puts("OK");
					mp[b]=i;
				}
			}
		}
		else{
			if (!check(b)) puts("ERR");
			else{
				if (mp[b]>0){
					printf ("%d\n",mp[b]);
				}
				else puts("FAIL");
			}
		}
//		cout << a <<" "<< b<<endl;
	}
	return 0;
}
2024/10/5 23:42
加载中...