比赛 |
20220418高一小测验 |
评测结果 |
RRRRRRRRRRRRRRRRRRRR |
题目名称 |
网络连接 |
最终得分 |
0 |
用户昵称 |
䱖虁職 |
运行时间 |
0.010 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-04-18 20:33:51 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n;
map<string,int>address;
bool check(string s)
{
int len=s.length();
long long tmp=0;
int cnt1=0,cnt2=0,cnt3=0;
for(int i=0;i<len;i++)
{
if((i==0||(s[i-1]=='.'||s[i-1]==':'))&&s[i]>='0'&&s[i]<='9') cnt3++;
if(s[i]=='.'||s[i]==':')
{
if(s[i]=='.') cnt1++;
else if(s[i]==':') cnt2++;
if(cnt1<3&&cnt2) return false;
if(!cnt3) return false;
if(0<=tmp&&tmp<=255)
{
tmp=0;
continue;
}
else return false;
}
else if(s[i]<'0'||s[i]>'9') return false;
if(i&&!tmp&&s[i-1]=='0') return false;
tmp = tmp*10+s[i]-'0';
}
if(cnt1!=3||cnt2!=1||cnt3!=5) return false;
if(0<=tmp&&tmp<=65535) return true;
else return false;
}
int main(){
//freopen("csp2021pj_network.in","r",stdin);
//freopen("csp2021pj_network.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
string cpt,adr;
cin>>cpt>>adr;
if(!check(adr))puts("ERR");
else if(cpt=="Server")
{
if(address.count(adr))puts("FAIL");
else
{
address[adr]=i;
puts("OK");
}
}
else if(cpt=="Client")
{
if(address.count(adr))printf("%d\n",address[adr]);
else puts("FAIL");
}
}
return 0;
}