Submission #46014595


Source Code Expand

// LUOGU_RID: 126497667
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;

int clac(int x,int d)
{
    if(d > __lg(n / x))
    {
        return 0;
    }
    int l = x << d,r = (x << d) + ((1ll << d) - 1);
    return min(r,n) - l + 1;
}

void solve()
{
    int x,m,ans = 0;
    cin >> n >> x >> m;
    for(int t = 0;(x >> t) >= 1 && t <= m;t++)
    {
        int y = x >> t;
        int k = m - t;
        if(t == 0)
        {
            ans += clac(x,k);
        }
        else
        {
            ans += clac(y,k);
            if(t < m)
            {
                ans -= clac(x >> (t - 1),m - t - 1);
            }
        }
    }
    cout << ans << '\n';
}

signed main()
{
    int T;
    cin >> T;
    while(T--)
    {
        solve();
    }
    return 0;
}

Submission Info

Submission Time
Task E - Complete Binary Tree
User feather_life
Language C++ 17 (gcc 12.2)
Score 450
Code Size 840 Byte
Status AC
Exec Time 196 ms
Memory 3656 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 2
AC × 8
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3468 KiB
00_sample_01.txt AC 1 ms 3488 KiB
01_small_00.txt AC 58 ms 3500 KiB
02_large_00.txt AC 196 ms 3656 KiB
02_large_01.txt AC 193 ms 3504 KiB
02_large_02.txt AC 192 ms 3468 KiB
02_large_03.txt AC 192 ms 3464 KiB
02_large_04.txt AC 195 ms 3560 KiB