結果
| 問題 |
No.87 Advent Calendar Problem
|
| コンテスト | |
| ユーザー |
HiroakiSoftware
|
| 提出日時 | 2014-12-07 00:21:58 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,157 bytes |
| コンパイル時間 | 116 ms |
| コンパイル使用メモリ | 24,064 KB |
| 実行使用メモリ | 13,888 KB |
| 最終ジャッジ日時 | 2024-06-11 15:55:09 |
| 合計ジャッジ時間 | 6,534 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | WA * 9 TLE * 2 -- * 13 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:20:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
20 | scanf("%d", &EndYear);
| ~~~~~^~~~~~~~~~~~~~~~
ソースコード
//yukicoder87
//作成者:ヒロソフ
//2014年7月23日と同じ曜日(水曜日)となる回数を求めよ
#include <stdio.h>
#define START_YEAR 2015
#define TARGET_MONTH 7
#define TARGET_DAY 23
int GetMJD(int year, int month, int day);
int GetDayOfWeekByMJD(int mjd);
int main(void) {
//ターゲットの曜日を示す値(水曜日が0なので注意)
int TargetDayofWeek = GetDayOfWeekByMJD(GetMJD(2014, TARGET_MONTH, TARGET_DAY));
int EndYear;
int count = 0;
scanf("%d", &EndYear);
for (int i = START_YEAR; i <= EndYear; i++) {
if (GetDayOfWeekByMJD(GetMJD(i, TARGET_MONTH, TARGET_DAY)) == TargetDayofWeek) {
count++;
}
}
printf("%d\n", count);
return 0;
}
/*
フリーゲルの公式で修正ユリウス日に変換
*/
int GetMJD(int year, int month, int day) {
if (month <= 2) {
year--;
month += 12;
}
int ret;
ret = (int)(365.25 * year);
ret += year / 400;
ret -= year / 100;
ret += (int)(30.59 * (month - 2)) + day;
ret -= 678912;
return ret;
}
int GetDayOfWeekByMJD(int mjd) {
int ret = mjd % 7;
if (ret < 0) ret += 7;
return ret;
}
HiroakiSoftware