結果
| 問題 |
No.87 Advent Calendar Problem
|
| コンテスト | |
| ユーザー |
bal4u
|
| 提出日時 | 2019-04-09 20:51:30 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 742 bytes |
| コンパイル時間 | 202 ms |
| コンパイル使用メモリ | 30,720 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-05 00:02:17 |
| 合計ジャッジ時間 | 1,507 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 |
ソースコード
// yukicoder: No.79 過小評価ダメ・ゼッタイ
// 2019.4.9 bal4u
#include <stdio.h>
#include <stdlib.h>
#define MONTH 7
#define DAY 23
#define WEEK 3 // 水曜
int dayOfWeek(int year, int month, int day)
{
if (month == 1 || month == 2) {
year--;
month += 12;
}
return (year + year / 4 - year / 100 + year / 400
+ (13 * month + 8) / 5 + day) % 7;
}
int calc(int fr, int to)
{
int f = 0;
while (fr <= to) {
if (dayOfWeek(fr, MONTH, DAY) == WEEK) f++;
fr++;
}
return f;
}
int main()
{
int ans;
long long N;
scanf("%lld", &N);
if (N <= 4000) ans = calc(2015, (int)N);
else {
N -= 4000;
ans = 282 + (int)(N / 2000) * 285;
N %= 2000;
ans += calc(4000, 4000+(int)N);
}
printf("%d\n", ans);
return 0;
}
bal4u