#include <stdio.h>
int is_uruu(int year)
{
if(year % 400 == 0)
return 1;
else if(year % 100 == 0)
return 0;
else if(year % 4 == 0)
return 1;
else
return 0;
}
int maxday_of_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(m == 2)
{
if(is_uruu(y))
return 29;
else
return 28;
}
return 0;
}
int days_from(int y, int m, int d)
{
int i;
int sum = 0;
for(i = 1; i < m; i++)
{
sum += maxday_of_month(y, i);
}
sum += d - 1;
return sum;
}
int main()
{
printf("%d\n", days_from
(2112,1,1)); printf("%d\n", days_from
(2112,1,2)); printf("%d\n", days_from
(2112,3,4)); printf("%d\n", days_from
(2112,9,3));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgaXNfdXJ1dShpbnQgeWVhcikKewogICAgaWYoeWVhciAlIDQwMCA9PSAwKQogICAgICAgIHJldHVybiAxOwogICAgZWxzZSBpZih5ZWFyICUgMTAwID09IDApCiAgICAgICAgcmV0dXJuIDA7CiAgICBlbHNlIGlmKHllYXIgJSA0ID09IDApCiAgICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIDA7Cn0KCmludCBtYXhkYXlfb2ZfbW9udGgoaW50IHksIGludCBtKQp7CiAgICBpZihtID09IDEgfHwgbSA9PSAzIHx8IG0gPT0gNSB8fCBtID09IDcgfHwKICAgICAgIG0gPT0gOCB8fCBtID09IDEwIHx8IG0gPT0gMTIpCiAgICAgICAgcmV0dXJuIDMxOwoKICAgIGlmKG0gPT0gNCB8fCBtID09IDYgfHwgbSA9PSA5IHx8IG0gPT0gMTEpCiAgICAgICAgcmV0dXJuIDMwOwoKICAgIGlmKG0gPT0gMikKICAgIHsKICAgICAgICBpZihpc191cnV1KHkpKQogICAgICAgICAgICByZXR1cm4gMjk7CiAgICAgICAgZWxzZQogICAgICAgICAgICByZXR1cm4gMjg7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCmludCBkYXlzX2Zyb20oaW50IHksIGludCBtLCBpbnQgZCkKewogICAgaW50IGk7CiAgICBpbnQgc3VtID0gMDsKCiAgICBmb3IoaSA9IDE7IGkgPCBtOyBpKyspCiAgICB7CiAgICAgICAgc3VtICs9IG1heGRheV9vZl9tb250aCh5LCBpKTsKICAgIH0KCiAgICBzdW0gKz0gZCAtIDE7CgogICAgcmV0dXJuIHN1bTsKfQoKaW50IG1haW4oKQp7CiAgICBwcmludGYoIiVkXG4iLCBkYXlzX2Zyb20oMjExMiwxLDEpKTsKICAgIHByaW50ZigiJWRcbiIsIGRheXNfZnJvbSgyMTEyLDEsMikpOwogICAgcHJpbnRmKCIlZFxuIiwgZGF5c19mcm9tKDIxMTIsMyw0KSk7CiAgICBwcmludGYoIiVkXG4iLCBkYXlzX2Zyb20oMjExMiw5LDMpKTsKCiAgICByZXR1cm4gMDsKfQ==