結果

問題 No.87 Advent Calendar Problem
コンテスト
ユーザー tottoripaper
提出日時 2015-03-16 04:43:17
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 846 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,833 ms
コンパイル使用メモリ 56,088 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2026-03-18 05:19:39
合計ジャッジ時間 4,254 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

// YukiCoderたんイェイ〜

#include <cstdio>
#include <vector>

std::vector<int> v{3, 8, 14, 25, 31, 36, 42, 53, 59, 64, 70, 81, 87, 92, 98, 104, 110, 121, 127, 132, 138, 149, 155, 160, 166, 177, 183, 188, 194, 200, 206, 217, 223, 228, 234, 245, 251, 256, 262, 273, 279, 284, 290, 302, 313, 319, 324, 330, 341, 347, 352, 358, 369, 375, 380, 386, 397};

bool isSame[400];

int main(){
    long long N;
    scanf("%lld", &N);

    for(int i : v){isSame[i] = true;}
    
    long long res = 0ll;

    if(N < 2400){
        for(int y=2015;y<=N;y++){
            res += isSame[y%400];
        }
    }else{
        for(int y=2015;y<2400;y++){
            res += isSame[y%400];
        }
        res += (N-2400) / 400 * v.size();
        for(N=(N-2400)%400;N>=0;N--){
            res += isSame[N%400];
        }
    }

    printf("%lld\n", res);
}
0