社区讨论
55 PTs
P7911[CSP-J 2021] 网络连接参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj9du1r
- 此快照首次捕获于
- 2025/11/03 22:52 4 个月前
- 此快照最后确认于
- 2025/11/03 22:52 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
set <string> host;
map <string, int> id;
inline bool check(string sit) {
int dot = 0, colon = 0;
for (size_t i = 0; i < sit.size(); i++) {
if (sit[i] == '.') {
dot++;
} else if (sit[i] == ':') {
colon++;
}
}
if (dot != 3 || colon != 1) {
return false;
}
int cnt = 0;
bool col = false;
for (size_t i = 0; i < sit.size(); i++) {
if (sit[i] == ':') {
col = true;
}
if (sit[i] == '.' || sit[i] == ':') {
cnt = 0;
continue;
}
if (col) {
if (cnt > 65535) {
return false;
}
} else {
if (cnt > 255) {
return false;
}
}
if (!isdigit(sit[i-1]) && sit[i] == '0' && isdigit(sit[i+1])) {
return false;
}
cnt = cnt * 10 + (sit[i] - '0');
}
return true;
}
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
string mode, sit;
cin >> mode >> sit;
if (check(sit)) {
if (mode == "Server") {
if (host.find(sit) != host.end()) {
cout << "FAIL" << endl;
} else {
cout << "OK" << endl;
host.insert(sit);
id[sit] = i;
}
} else {
if (host.find(sit) != host.end()) {
cout << id[sit] << endl;
} else {
cout << "FAIL" << endl;
}
}
} else {
cout << "ERR" << endl;
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...