#include <stdio.h>

int main(void)
{
int c = 0, year, n, i, j, a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

scanf("%d", &year);
n = year / 100 + year % 100;
if(year % 4 || ((year % 100 == 0) && year % 400)) a[2] = 29;
for(i = 12 + 31; i >= 1 + 1; i--) for(j = 12; j >= 1; j--, c++) if(a[j] && i == j + a[j]) printf("%d%02d%02d = %d\n", year, j, a[j]--, i + n);
printf("%d\n", c);
return 0;
}

2013 で c == 504 だけど
c == 365 まで減らせない?