提出 #52343284


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
using Int = long long;

Int f(Int b)
{
    Int t = 1LL;
    while (t <= b)
    {
        t <<= 1;
    }
    return t;
}

Int g(Int n){
    Int res = 0;
    while(n > 0){
        if(n % 2 == 0){
            res++;
            n /= 2;
        } else {
            break;
        }
    }
    return res;
}

Int cnt(Int bit)
{
    Int res = 0;
    Int crt = 1LL;
    while (crt <= bit)
    {
        res += ((crt & bit) != 0);
        crt = (crt << 1LL);
    }
    return res;
}

int main()
{
    Int l, r;
    cin >> l >> r;
    vector<pair<Int, Int>> ans;
    Int crt = l;
    while (crt < r)
    {

        if(crt == 0){
            Int t = 1LL;
            while((t << 1LL) <= r){
                t = (t << 1LL);
            }
            ans.push_back({0, t});
            crt = t;
            continue;
        }
        Int p = g(crt);
        Int maxi = -1;
        for(Int i = p; i >= 0; --i){
            Int x = crt / powl(2LL, i);
            Int nl = powl(2LL, i) * (x + 1);
            if(nl > r) continue;
            maxi = max(maxi, nl);
        }
        ans.push_back({crt, maxi});
        crt = maxi;
    }

    cout << ans.size() << endl;
    for (auto [a, b] : ans)
    {
        cout << a << " " << b << endl;
    }
}

提出情報

提出日時
問題 D - Divide Interval
ユーザ yebityon
言語 C++ 20 (gcc 12.2)
得点 450
コード長 1360 Byte
結果 AC
実行時間 3 ms
メモリ 3644 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 32
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 1 ms 3628 KiB
00_sample_02.txt AC 1 ms 3636 KiB
00_sample_03.txt AC 1 ms 3540 KiB
01_test_01.txt AC 1 ms 3500 KiB
01_test_02.txt AC 1 ms 3464 KiB
01_test_03.txt AC 1 ms 3640 KiB
01_test_04.txt AC 2 ms 3636 KiB
01_test_05.txt AC 2 ms 3548 KiB
01_test_06.txt AC 2 ms 3552 KiB
01_test_07.txt AC 2 ms 3576 KiB
01_test_08.txt AC 2 ms 3556 KiB
01_test_09.txt AC 2 ms 3528 KiB
01_test_10.txt AC 2 ms 3644 KiB
01_test_11.txt AC 2 ms 3556 KiB
01_test_12.txt AC 2 ms 3504 KiB
01_test_13.txt AC 2 ms 3596 KiB
01_test_14.txt AC 2 ms 3640 KiB
01_test_15.txt AC 2 ms 3544 KiB
01_test_16.txt AC 2 ms 3508 KiB
01_test_17.txt AC 2 ms 3644 KiB
01_test_18.txt AC 2 ms 3544 KiB
01_test_19.txt AC 2 ms 3536 KiB
01_test_20.txt AC 2 ms 3456 KiB
01_test_21.txt AC 1 ms 3404 KiB
01_test_22.txt AC 2 ms 3540 KiB
01_test_23.txt AC 2 ms 3460 KiB
01_test_24.txt AC 3 ms 3460 KiB
01_test_25.txt AC 1 ms 3636 KiB
01_test_26.txt AC 1 ms 3568 KiB
01_test_27.txt AC 1 ms 3516 KiB
01_test_28.txt AC 1 ms 3636 KiB
01_test_29.txt AC 1 ms 3536 KiB