75求调!马粪良好
查看原帖
75求调!马粪良好
921176
leiwenjin1234楼主2024/10/14 23:27
#include<bits/stdc++.h>
using namespace std;
map<string, int>si;
int n;
bool in(char x) {
	return (x >= '0' && x <= '9');
}
bool check(string a) {
	if (!in(a[0])) {
		return 0;
	}
	long long s = 0, i = 0;
	while (i < 3 && in(a[i])) {
		if (s == 0 && a[i] == '0') {
			i++;
			break;
		}
		s *= 10;
		s += a[i] - '0';
		i++;
	}
	if (s > 255)return 0;
	if (a[i] != '.')return 0;
	i++;
	s = 0;
	while (i < 30 && in(a[i])) {
		if (s == 0 && a[i] == '0') {
			i++;
			break;
		}
		s *= 10;
		s += a[i] - '0';
		i++;
	}
	if (s > 255)return 0;
	if (a[i] != '.')return 0;
	i++;
	s = 0;
	while (i < 30 && in(a[i])) {
		if (s == 0 && a[i] == '0') {
			i++;
			break;
		}
		s *= 10;
		s += a[i] - '0';
		i++;
	}
	if (s > 255)return 0;
	if (a[i] != '.')return 0;
	i++;
	s = 0;
	while (i < 30 && in(a[i])) {
		if (s == 0 && a[i] == '0') {
			i++;
			break;
		}
		s *= 10;
		s += a[i] - '0';
		i++;
	}
	if (s > 255)return 0;
	if (a[i] != ':')return 0;
	i++;
	s = 0;
	while (i < 30 && in(a[i])) {
		if (s == 0 && a[i] == '0') {
			i++;
			break;
		}
		s *= 10;
		s += a[i] - '0';
		i++;
	}//复制再修改的重复判断
	if (s > 65535)return 0;
	if (i < a.size())return 0;
	return 1;
}
int main() {
	//freopen("P7911_13.in","r",stdin);
//	freopen("p7911_13.out","w",stdout);
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		string a;
		string x;
		cin >> a >> x;
		if (check(x)) {
			if (a == "Server") {
				if (si[x] != 0) {
					printf("FAIL\n");
				} else {
					si[x] = i;
					printf("OK\n");
				}
			} else {
				if (si[x] != 0) {
					printf("%d\n", si[x]);
				} else {
					printf("FAIL\n");
				}
			}
		} else {
			printf("ERR\n");
		}
	}
	return 0;
}
2024/10/14 23:27
加载中...