在devc++上过不了,但是是ac

大严  •  15小时前


include<bits/stdc++.h>

using namespace std; int a[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char j[11]={'1', '0', 'X', '9', '8', '7', '6', '5' ,'4','3' ,'2'}; int main(){

int n;
cin>>n;
while(n--)
{
	string s;
	cin>>s;
	int y=(s[6]-'0')*1000+(s[7]-'0')*100+(s[8]-'0')*10+(s[9]-'0');
	int m=(s[10]-'0')*10+(s[11]-'0');
	int d=(s[12]-'0')*10+(s[13]-'0');
	if(y<1900||y>2006)
	{
		cout<<"Y"<<endl;
		continue;
	} 
	if(m<1||m>12)
	{
		cout<<"M"<<endl;
		continue;
	}
	if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
	{
		if(d<1||d>31)
		{
			cout<<"D"<<endl;
			continue;
		}
	}
	if(m==4||m==6||m==9||m==11)
	{
		if(d<1||d>30)
		{
			cout<<"D"<<endl;
			continue;
		}
	}
	if(m==2)
	{
		if(y%4==0)
		{
			if(d<1||d>29)
			{
				cout<<"D"<<endl;
				continue;
			}
		}
		else
		{
			if(d<1||d>28)
			{
				cout<<"D"<<endl;
				continue;
			}
		}
	}
	int sum=0;
	for(int i=0;i<s.size();i++)
	{
		sum+=a[i]*(s[i]-'0');
	}
	int yu=sum%11;
	if(j[yu]==s[17])
	{
		cout<<"T"<<endl;
	}
	else
	{
		s[17]=j[yu];
		cout<<s<<endl;
	}
}
return 0;

}


评论:

请先登录,才能进行评论