社区讨论

5pts求调

P7911[CSP-J 2021] 网络连接参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m2eocpet
此快照首次捕获于
2024/10/18 19:56
去年
此快照最后确认于
2025/11/04 16:54
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n, cnt;
struct node {
	string x;
	int k;
};
node h[1009];
bool check(string s) {
	long long dian=0, mao=0, a[9], cnt1 = 0;
	if (!(s[1] >= '0' && s[1] <= '9')) return 0;
	if (!(s[s.size()-1] >= '0' && s[s.size()-1] <= '9')) return 0;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] >= '0' && s[i] <= '9') {
			if (!(s[i-1] >= '0' && s[i-1] <= '9')) {
				if (s[i] =='0' && !(s[i+1] >= '0' && s[i+1] <= '9')) return false;
				a[++cnt1] = s[i] - '0';
			}
			else {
				a[cnt1] = a[cnt1] * 10 + (s[i] - '0');
			}
		}
		else if (s[i] == '.' || s[i] == ':') {
			if (s[i] == '.') dian++;
			else mao++;
			if (dian > 3 || mao > 1)  {
				return false;
			}
			if (dian < 3 && mao == 1) {
				return false;
			}
		}
		else {
			return false;
		}
	}
	if (cnt1 < 5) return false;
	if (a[1] >= 0 && a[1] <= 255 && a[2] >= 0 && a[2] <= 255 && a[3] >= 0 && a[3] <= 255 && a[4] >= 0 && a[4] <= 255 && a[5] >= 0 && a[5] <= 65535) {
		return true;
	}
	else {
		return false;
	}
}
int main() {
// 	freopen("network.in", "r", stdin);
// 	freopen("network.out", "w", stdout);
	cin >> n;
	for (int i = 1; i <= n; i++) {
		string op, x;
		cin >> op >> x;
		if (check(x)) {
			if (op == "Server") {
				int flag = 0;
				for (int j = 1; j <= cnt; j++) {
					if (x == h[j].x) {
						cout << "FAIL\n";
						flag = 1;
						break;
					}
				}
				if (flag == 0) {
					cout << "OK\n";
					h[++cnt].x = x;
					h[cnt].k = i;
				}
			}
			else {
				int flag = 0;
				for (int j = 1; j <= cnt; j++) {
					if (x == h[j].x) {
						cout << h[j].k << "\n";
						flag = 1;
						break; 
					}
				}
				if (flag == 0) {
					cout << "FAIL\n";
				}
			}
		}
		else {
			cout << "ERR\n";
		}
	}
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...