/*
寫一個程式計算給定日期為星期幾。輸入會先告訴程式某年的 1 月 1 號為星期幾,例如範例中 2012 年的 1 月 1 號為星期日。接著程式會收到一些日期,並要計算出給定日期為星期幾,例如範例中程式將會收到 11 月 13 號,並計算出該日期為星期二。
*/
#include <stdio.h>
int main ()
{
int y, d;
int n;
int month, day;
int leap_year;
int days;
scanf ( "%d%d", &y
, &d
);
// leap year or not
leap_year = y % 400 == 0 || ( y % 100 && y % 4 == 0 );
// calculate each input line
for ( int i = 0; i < n; i++ ) {
days = d;
scanf ( "%d%d", &month
, &day
);
if ( month < 1 || month > 12 ) {
continue;
}
if ( day < 1 ) {
continue;
}
else {
switch ( month ) {
case 2:
if ( ( leap_year && day > 29 ) ||
( !leap_year && day > 28 ) ) {
continue;
}
break;
case 4: case 6: case 9: case 11:
if ( day > 30 ) {
continue;
}
break;
default:
if ( day > 31 ) {
continue;
}
}
}
for ( int m = 1; m < month; m++ ) {
switch ( m ) {
case 2:
if ( leap_year ) days += 29;
else days += 28;
break;
case 4: case 6: case 9: case 11:
days += 30;
break;
default:
days += 31;
}
}
days += ( day - 1 );
}
return 0;
}
LyoK5a+r5LiA5YCL56iL5byP6KiI566X57Wm5a6a5pel5pyf54K65pif5pyf5bm+44CC6Ly45YWl5pyD5YWI5ZGK6Ki056iL5byP5p+Q5bm055qEIDEg5pyIIDEg6Jmf54K65pif5pyf5bm+77yM5L6L5aaC56+E5L6L5LitIDIwMTIg5bm055qEIDEg5pyIIDEg6Jmf54K65pif5pyf5pel44CC5o6l6JGX56iL5byP5pyD5pS25Yiw5LiA5Lqb5pel5pyf77yM5Lim6KaB6KiI566X5Ye657Wm5a6a5pel5pyf54K65pif5pyf5bm+77yM5L6L5aaC56+E5L6L5Lit56iL5byP5bCH5pyD5pS25YiwIDExIOaciCAxMyDomZ/vvIzkuKboqIjnrpflh7roqbLml6XmnJ/ngrrmmJ/mnJ/kuozjgIIKKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IG1haW4gKCkKewogICBpbnQgeSwgZDsKICAgaW50IG47CiAgIGludCBtb250aCwgZGF5OwogICBpbnQgbGVhcF95ZWFyOwogICBpbnQgZGF5czsKCiAgIHNjYW5mICggIiVkJWQiLCAmeSwgJmQgKTsKICAgc2NhbmYgKCAiJWQiLCAmbiApOwoKICAgLy8gbGVhcCB5ZWFyIG9yIG5vdAogICBsZWFwX3llYXIgPSB5ICUgNDAwID09IDAgfHwgKCB5ICUgMTAwICYmIHkgJSA0ID09IDAgKTsKCiAgIC8vIGNhbGN1bGF0ZSBlYWNoIGlucHV0IGxpbmUKICAgZm9yICggaW50IGkgPSAwOyBpIDwgbjsgaSsrICkgewogICAgICBpZiAoIGkgKSBwcmludGYgKCAiICIgKTsKCiAgICAgIGRheXMgPSBkOwogICAgICBzY2FuZiAoICIlZCVkIiwgJm1vbnRoLCAmZGF5ICk7CgogICAgICBpZiAoIG1vbnRoIDwgMSB8fCBtb250aCA+IDEyICkgewogICAgICAgICBwcmludGYgKCAiLTEiICk7CiAgICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGlmICggZGF5IDwgMSApIHsKICAgICAgICAgcHJpbnRmICggIi0yIiApOwogICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICAgc3dpdGNoICggbW9udGggKSB7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgaWYgKCAoIGxlYXBfeWVhciAmJiBkYXkgPiAyOSApIHx8CiAgICAgICAgICAgICAgICAgICAgKCAhbGVhcF95ZWFyICYmIGRheSA+IDI4ICkgKSB7CiAgICAgICAgICAgICAgICAgIHByaW50ZiAoICItMiIgKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDogY2FzZSA2OiBjYXNlIDk6IGNhc2UgMTE6CiAgICAgICAgICAgICAgIGlmICggZGF5ID4gMzAgKSB7CiAgICAgICAgICAgICAgICAgIHByaW50ZiAoICItMiIgKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgIGlmICggZGF5ID4gMzEgKSB7CiAgICAgICAgICAgICAgICAgIHByaW50ZiAoICItMiIgKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICB9CgogICAgICBmb3IgKCBpbnQgbSA9IDE7IG0gPCBtb250aDsgbSsrICkgewogICAgICAgICBzd2l0Y2ggKCBtICkgewogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgIGlmICggbGVhcF95ZWFyICkgZGF5cyArPSAyOTsKICAgICAgICAgICAgICAgZWxzZSBkYXlzICs9IDI4OwogICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OiBjYXNlIDY6IGNhc2UgOTogY2FzZSAxMToKICAgICAgICAgICAgICAgZGF5cyArPSAzMDsKICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgIGRheXMgKz0gMzE7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgZGF5cyArPSAoIGRheSAtIDEgKTsKICAgICAgcHJpbnRmICggIiVkIiwgZGF5cyAlIDcgKTsKICAgfQoKICAgcmV0dXJuIDA7Cn0=