
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int get(int y, int m)
{
if(m != 2) return month[m];
int leap = (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
return leap + 28;
}
int main()
{
int sum = 5, res = 0;
for(int y = 2000; y <= 2019; y ++ )
for(int m = 1; m <= 12; m ++ )
for(int d = 1; d <= get(y, m); d ++)
{
sum ++ ;
if(d == 1 || sum % 7 == 1) res += 2;
else res += 1;
}
for(int y = 2020; y <= 2020; y ++ )
for(int m = 1; m <= 9; m ++ )
for(int d = 1; d <= get(y, m); d ++)
{
sum ++ ;
if(d == 1 || sum % 7 == 1) res += 2;
else res += 1;
}
cout << res + 2;
}
#include <bits/stdc++.h>
using namespace std;
int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int res;
int sum = 5;
int main()
{
for(int y = 2000; y <= 2019; y ++ )
{
month[2] = 28;
if(y % 100 != 0 && y % 4 == 0 || y % 400 == 0)
{
month[2] = 29;
}
for(int m = 1; m <= 12; m ++)
{
for(int d = 1; d <= month[m]; d ++ )
{
sum ++;
if(d == 1 || sum % 7 == 1) res += 2;
else
res += 1;
}
}
}
for(int m = 1; m <= 9; m ++ )
{
month[2] = 29;
for(int d = 1; d <= month[m]; d ++ )
{
sum ++ ;
if(d == 1 || sum % 7 == 1) res += 2;
else
res += 1;
}
}
res += 2;
cout << res;
}
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d;
int check(int x)
{
y = x / 10000;
m = x / 100 % 100;
d = x % 100;
int leap = (y % 4 == 0 && y % 100) || y % 400 == 0;
if(m == 0 || m > 12 || d == 0) return 0;
if(m == 2)
{
if(d > 28 + leap) return 0;
}
else
{
if(d > month[m]) return 0;
}
return 1;
}
int main()
{
int sum = 5, res = 0;
for(int i = 20000101; i <= 20201001; i ++ )
{
if(!check(i)) continue;
sum ++;
y = i / 10000;
m = i / 100 % 100;
d = i % 100;
if(d == 1 || sum % 7 == 1) res += 2;
else res += 1;
}
cout << res;
}