社区讨论

65分求调必关

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m1nl9vs9
此快照首次捕获于
2024/09/29 21:00
去年
此快照最后确认于
2024/09/29 21:04
去年
查看原帖
CPP
#include<iostream>
using namespace std;
int n,cnt;
struct node{
	int id;
	string op,ad;
}q[1005];
int f(string s){
	int a=0,ansd=0,ansm=0;
	for(int i=0;i<s.size();i++){
		if(s[i]==':'){
			ansm++;
			if(a>255)return 1;
			a=0;
		}
		if(s[i]=='.'){
			ansd++;
			if(a>255)return 1;
			a=0;
		}
		if(s[i]>='0'&&s[i]<='9')a=a*10+(s[i]-'0');
		if(ansm==1&&ansd==3&&a>65535)return 1;
	}
	if(ansm!=1||ansd!=3)return 1;
	return 0;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(NULL);cout.tie(NULL);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>q[i].op>>q[i].ad;
		if(q[i].op=="Server")q[i].id=i;
		if(f(q[i].ad)==1){//不合法
			cout<<"ERR\n";
			continue;
		}else{//合法
			if(q[i].op=="Client"){//客户机
				int u=0; 
				for(int j=1;j<i;j++){
					if(q[j].op=="Server"&&q[j].ad==q[i].ad){
						cout<<q[j].id<<"\n";
						u=1;
						break;
					}
				}
				if(u!=1){//无匹配服务机 
					cout<<"FAIL\n";
					continue;
				}
			}else{//服务机 
				int o=0;
				for(int j=1;j<i;j++){//判重 
					if(q[j].op==q[i].op&&q[j].ad==q[i].ad){
						cout<<"FAIL\n";
						q[i].ad="0";q[i].op="0";
						o=1;
						break;
					}
				}
				if(o==1)continue;
				cout<<"OK\n";
			}
		}
	}
	return 0;
}

回复

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

正在加载回复...