結果

問題 No.5003 物理好きクリッカー
ユーザー とばりとばり
提出日時 2018-12-06 08:56:46
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 313 ms / 10,000 ms
コード長 1,181 bytes
コンパイル時間 2,167 ms
実行使用メモリ 21,972 KB
スコア 5,566,232
平均クエリ数 10000.00
最終ジャッジ日時 2021-07-19 08:55:38
合計ジャッジ時間 14,608 ms
ジャッジサーバーID
(参考情報)
judge12 / judge15
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 284 ms
21,516 KB
testcase_01 AC 292 ms
21,660 KB
testcase_02 AC 288 ms
21,516 KB
testcase_03 AC 282 ms
21,840 KB
testcase_04 AC 281 ms
21,852 KB
testcase_05 AC 313 ms
21,516 KB
testcase_06 AC 283 ms
21,840 KB
testcase_07 AC 289 ms
21,516 KB
testcase_08 AC 297 ms
21,864 KB
testcase_09 AC 284 ms
21,852 KB
testcase_10 AC 287 ms
21,348 KB
testcase_11 AC 289 ms
21,504 KB
testcase_12 AC 287 ms
21,516 KB
testcase_13 AC 290 ms
21,876 KB
testcase_14 AC 290 ms
21,516 KB
testcase_15 AC 284 ms
21,360 KB
testcase_16 AC 298 ms
21,348 KB
testcase_17 AC 304 ms
21,360 KB
testcase_18 AC 287 ms
21,336 KB
testcase_19 AC 287 ms
21,348 KB
testcase_20 AC 285 ms
21,696 KB
testcase_21 AC 282 ms
21,852 KB
testcase_22 AC 281 ms
21,528 KB
testcase_23 AC 282 ms
21,864 KB
testcase_24 AC 283 ms
21,516 KB
testcase_25 AC 285 ms
21,684 KB
testcase_26 AC 295 ms
21,900 KB
testcase_27 AC 280 ms
21,540 KB
testcase_28 AC 280 ms
21,528 KB
testcase_29 AC 281 ms
21,348 KB
testcase_30 AC 282 ms
21,360 KB
testcase_31 AC 282 ms
21,864 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

// #define DEBUG

enum Action
{
    CLICK,
    ENHCLICK
};

const int64_t inf = (1LL << 50);

int main()
{
    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);

    int n;
    std::cin >> n;

    std::string s;
    std::cin >> s;

    int levelClick = 0;
    int costClick = 15;
    int64_t score = 0;

    std::vector<Action> ans;

    for (int i = 0; i < n; i++)
    {
        int64_t score1 = score + (n - i) * (1LL << levelClick),
                score2 = score - costClick + (n - i - 1) * (1LL << (levelClick + 1));

        if (score < costClick or score1 > score2)
        {
            ans.push_back(CLICK);
            score += (1LL << levelClick);
        }
        else
        {
            ans.push_back(ENHCLICK);
            score -= costClick;
            levelClick++;
            costClick *= 10;
        }
    }

    for (int i = 0; i < n; i++)
    {
        if (ans[i] == ENHCLICK) std::cout << "enhclick" << std::endl;
        else std::cout << "click" << std::endl;

        std::string response;
        std::cin >> response;
    }

#ifdef DEBUG
    std::cerr << "[Score] " << score << std::endl;
#endif

    return 0;
}
0