📄 1934.cpp
字号:
#include<stdio.h>
#include<ctype.h>
const int oldmax = 175760000;
char a[10],b[10];
int num;
bool noacmip(char c)
{
if(c == 'A' || c == 'C' || c == 'M' || c == 'I' || c == 'P')
return false;
else
return true;
}
bool legal(char f[])
{
int lei;
if(isupper(f[0])&&isupper(f[1])&&isupper(f[2])&&isdigit(f[3])&&isdigit(f[4])&&isdigit(f[5])&&isdigit(f[6]))
return true;
else if(isupper(f[0])&&isupper(f[1])&&isupper(f[2])&&isupper(f[3])&&isupper(f[4])&&isdigit(f[5])&&isdigit(f[6]))
{
if(noacmip(f[0])&&noacmip(f[1])&&noacmip(f[2])&&noacmip(f[3])&&noacmip(f[4]))
return true;
else
return false;
}
else
return false;
}
int atonum(char f[])
{
int k;
if(f[3] >= '0'&&f[3] <= '9'){
int sum = 0;
k = 0;
while(k < 3)
sum = sum * 26 + f[k++] - 'A';
while(k < 7)
sum = sum * 10 + f[k++] - '0';
return sum;
}
else
{
int sum = 0;
k = 0;
while(k < 5)
{
sum *= 21;
if(f[k] > 'A' && f[k] < 'C')
sum += f[k] - 'A' - 1;
else if(f[k] > 'C' && f[k] < 'I')
sum += f[k] - 'A' - 2;
else if(f[k] > 'I' && f[k] < 'M')
sum += f[k] - 'A' - 3;
else if(f[k] > 'M' && f[k] < 'P')
sum += f[k] - 'A' - 4;
else if(f[k] > 'P' && f[k] <='Z')
sum += f[k] - 'A' - 5;
k++;
}
while(k < 7)
sum = sum * 10 + f[k++] - '0';
return sum + oldmax;
}
}
int main()
{
while(scanf("%s %s %d", a, b, &num) == 3)
{
if(a[0] == '*' && b[0] == '*' && num == 0)
break;
if(legal(b) == false)
{
printf("N\n");
continue;
}
int m = atonum(a);
int n = atonum(b);
if(m < n && m + num >= n)
printf("Y\n");
else
printf("N\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -