《编译错误》
  • 板块灌水区
  • 楼主A_grasser
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/17 14:31
  • 上次更新2024/9/17 14:46:14
查看原帖
《编译错误》
966803
A_grasser楼主2024/9/17 14:31

#include<bits/stdc++.h>
using namespace std;
int idx[26]={-1,0,-1,1,2,3,4,5,-1,6,7,8,-1,9,10,-1,11,12,13,14,15,16,17,18,19,20};
//BDEFGHJKLNOQRSTUVWXYZ
bool isd(char x){return ('0'<=x && x<='9');}
bool isa(char x){return ('A'<=x && x<='Z');}
bool is_bad_ch(char x){return (x=='A' || x=='C' || x=='M' || x=='I' || x=='P');}
bool no_this_car(string x){
	if((isd(x[3]) && isa(x[4])) || (isa(x[3]) && isd(x[4]))) return 1;
	if(isa(x[3]) && isa(x[4])){
		for(int i=0;i<=4;i++) if(is_bad_ch(x[i])) return 1;
	}
	return 0;
}
int id(string x){
	int res=0;
	if(isd(x[3])){
		for(int i=0;i<=2;i++) res=res*26+(x[i]-'A');
		for(int i=3;i<7;i++) res=res*10+(x[i]-'0');
		return res;
	}
	else{
		for(int i=0;i<=4;i++) res=res*21+idx[(x[i]-'A')];
		for(int i=5;i<7;i++) res=res*10+(x[i]-'0');
		res+=26*26*26*10*10*10*10;
		return res;
	}
}
int main(){
	string a,b;
	int c;
	while(cin>>a>>b>>c){
		if(a=="*" && b=="*" && c==0) return 0;
		if(no_this_car(b)){
			puts("N");
			continue;
		}
		if(id(b)-id(a)<=c && id(b)>id(a)) puts("Y");
		else puts("N");
	}
	return 0;
}

题目链接,为何这样?

2024/9/17 14:31
加载中...