CSP-J T3求助
  • 板块学术版
  • 楼主djwj223
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/10/24 06:40
  • 上次更新2023/11/4 02:31:59
查看原帖
CSP-J T3求助
295367
djwj223楼主2021/10/24 06:40
#include<bits/stdc++.h>
using namespace std;
const int sum1=255,sum2=65535;
string op,s; int n; bool nowop;
map<string,int> ma;
bool err(string s){
	int no=1,nowsum=0,big=0,zero=0;
	string yk="";
	for(int i=0;i<s.size();i++){
		if(s[i]=='.' || s[i]==':') yk+=s[i];
		else if(s[i]<'0' || s[i]>'9') return 1;
	}
	if(yk!="...:") return 1;
	s+='.';
	for(int i=0;i<s.size();i++){
		if(s[i]=='.' || s[i]==':'){
			if(no==1) return 1;
			if(s[i]==':') big=1;
			no=1; nowsum=0; zero=0;
		}else{
			if(s[i]=='0' && no==1) zero=1;
			if(s[i]!='0' && zero==1) return 1;
			nowsum=nowsum*10+s[i]-'0',no=0;
		}
		if((!big && nowsum>sum1) || nowsum>sum2) return 1;
	}
	return 0;
}
int main(){
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		cin>>op;
		cin>>s;
		if(op[0]=='S') nowop=1;
		else nowop=0;
		if(nowop){
			if(ma[s]){printf("FAIL\n");continue;}
			if(err(s)){printf("ERR\n");continue;}
			printf("OK\n");ma[s]=i;
		}else{
			if(ma[s]){printf("%d\n",ma[s]);continue;}
			if(err(s)){printf("ERR\n");continue;}
			printf("FAIL\n");
		}
	}
	return 0;
}

洛谷评测100,但是计蒜客评出来70pts,求大佬帮忙看一下

2021/10/24 06:40
加载中...