#C1020. [CSP-J 2021T3] 网络连接
[CSP-J 2021T3] 网络连接
题目描述
在本题中,计算机分为服务器 Server 和客户机 Client 两类。服务器负责建立连接,客户机负责加入连接。
共有 台计算机,编号为 ,它们按编号递增顺序依次发起建立连接或加入连接的操作。每台机器操作时会提供一个地址串。
一个符合规范的地址串必须形如 a.b.c.d:e,其中 均为非负整数,并满足:
- ,;
- 均不能含有多余的前导 ;
- 格式中恰好有三个字符
.和一个字符:。
若地址串不符合规范,该操作直接输出 ERR。
若服务器提供合法地址且之前没有服务器成功使用过相同地址,则成功建立连接并输出 OK;若该地址已被之前某台服务器成功使用,则输出 FAIL。
若客户机提供合法地址且能找到之前成功建立连接的同地址服务器,则输出该服务器编号;否则输出 FAIL。
输入格式
第一行一个正整数 。
接下来 行,每行两个字符串 ,依次给出每台计算机的类型和地址串。
其中 为 Server 或 Client, 长度不超过 ,仅由数字、. 和 : 组成且非空。两字符串之间用一个空格分隔。
输出格式
输出 行,每行表示对应计算机的连接状态。
- 对于服务器:若地址合法且未被占用,输出
OK;若地址合法但已被占用,输出FAIL;若地址非法,输出ERR。 - 对于客户机:若地址合法且存在对应服务器,输出该服务器编号;若地址合法但不存在对应服务器,输出
FAIL;若地址非法,输出ERR。
样例
5
Server 192.168.1.1:8080
Server 192.168.1.1:8080
Client 192.168.1.1:8080
Client 192.168.1.1:80
Client 192.168.1.1:99999
OK
FAIL
1
FAIL
ERR
10
Server 192.168.1.1:80
Client 192.168.1.1:80
Client 192.168.1.1:8080
Server 192.168.1.1:80
Server 192.168.1.1:8080
Server 192.168.1.999:0
Client 192.168.1.1.8080
Client 192.168.1.1:8080
Client 192.168.1.1:80
Client 192.168.1.999:0
OK
1
FAIL
FAIL
OK
ERR
ERR
5
1
ERR
样例解释
样例 #1 中, 号服务器成功建立连接; 号服务器地址重复,输出 FAIL; 号客户机连接到 号服务器; 号客户机找不到服务器; 号客户机地址端口超出范围。
样例 #2 中,详细过程见输出结果。
数据范围与提示
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 性质 1 2 3 | ||
| 性质 1 2 | ||
| 性质 1 | ||
| 性质 2 | ||
| 性质 4 | ||
| 性质 5 | ||
| 无特殊性质 |
- 性质 1:所有地址串均符合规范。
- 性质 2:任意两台不同计算机若同为服务器或同为客户机,则它们提供的地址串一定不同。
- 性质 3:任意服务器编号都小于所有客户机编号。
- 性质 4:所有地址串均形如
a.b.c.d:e,其中 均为不超过 且不含多余前导 的非负整数。 - 性质 5:所有地址串均形如
a.b.c.d:e,其中 均为只含数字的非空字符串。
对于 的数据,。