#C1020. [CSP-J 2021T3] 网络连接

    ID: 4494 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 2 上传者: 标签>字符串模拟CSP-J入门级2021年模拟题数组排序顺序结构

[CSP-J 2021T3] 网络连接

题目描述

在本题中,计算机分为服务器 Server 和客户机 Client 两类。服务器负责建立连接,客户机负责加入连接。

共有 nn 台计算机,编号为 1n1 \sim n,它们按编号递增顺序依次发起建立连接或加入连接的操作。每台机器操作时会提供一个地址串。

一个符合规范的地址串必须形如 a.b.c.d:e,其中 a,b,c,d,ea,b,c,d,e 均为非负整数,并满足:

  1. 0a,b,c,d2550 \le a,b,c,d \le 2550e655350 \le e \le 65535
  2. a,b,c,d,ea,b,c,d,e 均不能含有多余的前导 00
  3. 格式中恰好有三个字符 . 和一个字符 :

若地址串不符合规范,该操作直接输出 ERR

若服务器提供合法地址且之前没有服务器成功使用过相同地址,则成功建立连接并输出 OK;若该地址已被之前某台服务器成功使用,则输出 FAIL

若客户机提供合法地址且能找到之前成功建立连接的同地址服务器,则输出该服务器编号;否则输出 FAIL

输入格式

第一行一个正整数 nn

接下来 nn 行,每行两个字符串 op,adop, ad,依次给出每台计算机的类型和地址串。

其中 opopServerClientadad 长度不超过 2525,仅由数字、.: 组成且非空。两字符串之间用一个空格分隔。

输出格式

输出 nn 行,每行表示对应计算机的连接状态。

  • 对于服务器:若地址合法且未被占用,输出 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 中,11 号服务器成功建立连接;22 号服务器地址重复,输出 FAIL33 号客户机连接到 11 号服务器;44 号客户机找不到服务器;55 号客户机地址端口超出范围。

样例 #2 中,详细过程见输出结果。

数据范围与提示

测试点编号 nn \le 特殊性质
11 1010 性质 1 2 3
232 \sim 3 100100
454 \sim 5 10001000
686 \sim 8 性质 1 2
9119 \sim 11 性质 1
121312 \sim 13 性质 2
141514 \sim 15 性质 4
161716 \sim 17 性质 5
182018 \sim 20 无特殊性质
  • 性质 1:所有地址串均符合规范。
  • 性质 2:任意两台不同计算机若同为服务器或同为客户机,则它们提供的地址串一定不同。
  • 性质 3:任意服务器编号都小于所有客户机编号。
  • 性质 4:所有地址串均形如 a.b.c.d:e,其中 a,b,c,d,ea,b,c,d,e 均为不超过 10910^9 且不含多余前导 00 的非负整数。
  • 性质 5:所有地址串均形如 a.b.c.d:e,其中 a,b,c,d,ea,b,c,d,e 均为只含数字的非空字符串。

对于 100%100\% 的数据,1n10001 \le n \le 1000

附件下载

network.zip