来活了
  • 板块灌水区
  • 楼主LiJinLin_AFO
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/7/31 21:43
  • 上次更新2023/11/3 06:40:14
查看原帖
来活了
755503
LiJinLin_AFO楼主2023/7/31 21:43

P7911

震惊!这个蒟蒻居然只有5pts!快帮帮他!

#include<stdio.h>
#include<iostream>
#include<string>
#include<map>
using namespace std;
string kind;
char address[100];
map<string,int> m;
int s_num=0;
string courge(string f,int n){
	if(!n) return f;
	return courge(f,n/10)+((char)(n%10+'0'));
}
string cheer_up(int a,int b,int c,int d,int e){
	string wen="";
	wen+=courge("",a);
	wen+=".";
	wen+=courge("",b);
	wen+=".";
	wen+=courge("",c);
	wen+=".";
	wen+=courge("",d);
	wen+=":";
	wen+=courge("",e);
	return wen;
}
int main(){
	int n;
	scanf("%d",&n);
	while(n--){
		int a,b,c,d,e;
		cin>>kind>>address;
		if(kind=="Server"){
			++s_num;
			int num=sscanf(address,"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
			if(num!=5||a<0||a>255||b<0||b>255||c<0||c>255||d<0||d>255||e<0||e>65535){
				printf("ERR\n");
				continue;
			}
			string ghj=cheer_up(a,b,c,d,e);
			if(ghj!=address){
				printf("ERR\n");
				continue;
			}
			if(m[ghj]!=0){
				printf("FAIL\n");
				continue;
			}
			m[ghj]=s_num;
			printf("OK\n");
		}
		if(kind=="Client"){
			++s_num;
			int num=sscanf(address,"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
			if(num!=5||a<0||a>255||b<0||b>255||c<0||c>255||d<0||d>255||e<0||e>65535){
				printf("ERR\n");
				continue;
			}
			string ghj=cheer_up(a,b,c,d,e);
			if(ghj!=address){
				printf("ERR\n");
				continue;
			}
			if(!m[ghj]) printf("FAIL\n");
			else printf("%d\n",m[ghj]);
		}
	}
	return 0;
}

注:样例没问题,思路似乎也没问题(废话)

2023/7/31 21:43
加载中...