已 AC,但是
#include <bits/stdc++.h>
using namespace std;
int day, month, year;
inline void read(){
char c = getchar();
while(c >= '0' && c <= '9'){
day = (day << 1) + (day << 3) + (c ^ '0');
c = getchar();
}
string month2 = "";
while(c > '9' || c < '0'){
month2 += c;
c = getchar();
}
if(month2 == "JAN") month = 1;
if(month2 == "FEB") month = 2;
if(month2 == "MAR") month = 3;
if(month2 == "APR") month = 4;
if(month2 == "MAY") month = 5;
if(month2 == "JUN") month = 6;
if(month2 == "JUL") month = 7;
if(month2 == "AUG") month = 8;
if(month2 == "SEP") month = 9;
if(month2 == "OCT") month = 10;
if(month2 == "NOV") month = 11;
if(month2 == "DEC") month = 12;
while(c >= '0' && c <= '9'){
year = (year << 1) + (year << 3 ) + (c ^ '0');
c = getchar();
}
return ;
}
inline int check_year(int y){
if(y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) return 366;
return 365;
}
inline int check_month(int y, int m){
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) return 31;
if(m == 4 || m == 6 || m == 9 || m == 11) return 30;
//if(y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) return 29;
if(y % 400 == 0 || (y % 4 == 0)) return 29;
return 28;
}
inline int check_month2(int y, int m){
if(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) return 31;
if(m == 4 || m == 6 || m == 9 || m == 11) return 30;
if(y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) return 29;
return 28;
}
main(){
read();
//printf("%d %d %d\n", year, month, day);
if(year < 1582 || (year == 1582 && month < 10) || (year == 1582 && month == 10 && day <= 4)){
int ans = 0;
for(int i = 1; i < year; i++) for(int j = 1; j <= 12; j++) ans += check_month(i, j);
for(int j = 1; j < month; j++) ans += check_month(year, j);
ans += day;
printf("%d", ans - 1);
}else{
long long ans = 0;
for(int i = 1; i < year; i++) ans += check_year(i);
for(int j = 1; j < month; j++) ans += check_month2(year, j);
ans += day;
printf("%lld", ans+1);// 看我看我
}
return 0;
}
为什么这里要 +1 不是 -1 啊