题解 P5690 【[CSP-SJX2019]日期】
输出仅一行。或成此题最短题解?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;char c;//定义一行
cin>>n>>c>>m;//输入一行
cout<<(n>12||n==0)+(m>31||m==0||n==2&&m>28);//输出一行
//顺带科普:cout中可以写表达式……
return 0;
}
大致思路:
首先月和日显然是不能为零的。
其次,由于如果不符合要求我们就可以将十位数改为0,达到要求。
所以可得,如果要改,月和日最多都只能改一次。
最后,当日期为2月29/30/31日时,还要加上特判。
再加上洛谷数据之弱,然后九行搞定~
点个赞再走呗~