This documentation is automatically generated by online-judge-tools/verification-helper
This project is maintained by tsutaj
// よく使う配列
string dayname[] = {"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"};
string dayname[] = {"日", "月", "火", "水", "木", "金", "土"};
string dayname[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
string dayname[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
int daynum[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 年月日の情報から曜日を求める (ツェラーの公式、 Zeller's congruence)
int dayOfTheWeek( int y, int m, int d ) {
if( m < 3 ) {
y--; m += 12;
}
return ( y + y/4 - y/100 + y/400 + ( 13*m + 8 )/5 + d ) % 7;
}
// 備考 ... 数字と曜日の関係一覧
// 0 ... 日曜日
// 1 ... 月曜日
// 2 ... 火曜日
// 3 ... 水曜日
// 4 ... 木曜日
// 5 ... 金曜日
// 6 ... 土曜日
// うるう年であるかどうかを判定する (Verified: ARC002 A問題)
bool isLeapYear( int y ) {
if (y % 400 == 0) return true;
else if(y % 100 == 0) return false;
else if(y % 4 == 0) return true;
else return false;
}
// 1日ずつ全探索する (Verified: ARC002 B問題)
// 注意: 配列 daynum と 関数 isLeapYear が必要です
void BForceDate(int y, int m, int d) {
if(処理を実行) return;
if(d >= daynum[m-1]) {
if(m == 12) BForceDate(y+1, 1, 1);
else if(m == 2) {
if(isLeapYear(y) && d == 28) BForceDate(y, m, d+1);
else BForceDate(y, m+1, 1);
}
else BForceDate(y, m+1, 1);
}
else BForceDate(y, m, d+1);
}
#line 1 "etc/etc_000_date.cpp"
// よく使う配列
string dayname[] = {"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"};
string dayname[] = {"日", "月", "火", "水", "木", "金", "土"};
string dayname[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
string dayname[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
int daynum[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 年月日の情報から曜日を求める (ツェラーの公式、 Zeller's congruence)
int dayOfTheWeek( int y, int m, int d ) {
if( m < 3 ) {
y--; m += 12;
}
return ( y + y/4 - y/100 + y/400 + ( 13*m + 8 )/5 + d ) % 7;
}
// 備考 ... 数字と曜日の関係一覧
// 0 ... 日曜日
// 1 ... 月曜日
// 2 ... 火曜日
// 3 ... 水曜日
// 4 ... 木曜日
// 5 ... 金曜日
// 6 ... 土曜日
// うるう年であるかどうかを判定する (Verified: ARC002 A問題)
bool isLeapYear( int y ) {
if (y % 400 == 0) return true;
else if(y % 100 == 0) return false;
else if(y % 4 == 0) return true;
else return false;
}
// 1日ずつ全探索する (Verified: ARC002 B問題)
// 注意: 配列 daynum と 関数 isLeapYear が必要です
void BForceDate(int y, int m, int d) {
if(処理を実行) return;
if(d >= daynum[m-1]) {
if(m == 12) BForceDate(y+1, 1, 1);
else if(m == 2) {
if(isLeapYear(y) && d == 28) BForceDate(y, m, d+1);
else BForceDate(y, m+1, 1);
}
else BForceDate(y, m+1, 1);
}
else BForceDate(y, m, d+1);
}