QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#385806#3472. EvenOddEcec243AC ✓0ms3740kbC++23919b2024-04-11 08:11:542024-04-11 08:11:54

Judging History

你现在查看的是最新测评结果

  • [2024-04-11 08:11:54]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3740kb
  • [2024-04-11 08:11:54]
  • 提交

answer

#include <bits/stdc++.h>

#define FastIO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define endl '\n'
#define ends ' '
#define int long long

const int MOD = 1e9 + 7;

using namespace std;

int T, l, r;

int calc(int x) {
    if (x == 0 || x == 1) return 0;
    if (x == 2) return 1;
    int ret = 0;
    while (x > 1) {
        if (x % 2) x++;
        else x /= 2;
        ret++;
    }
    return ret;
}

int func(int x) {
    if (!x) return 0;
    if (x == 1) return 0;

    int ret = x / 2 - 1;
    ret -= 1;
    ret += ((func(x / 2) % MOD + (x / 2) % MOD) % MOD) * 2;
    if (x % 2) ret += calc(x);

    return ret % MOD;
}

int32_t main(void) {
    FastIO;

    T = 1;
    //cin >> T;

    while (T--) {
        cin >> l >> r;
        int ans = func(r) - func(l - 1);
        if (ans < 0) ans += MOD;
        cout << ans << endl;
    }

    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3560kb

input:

1 127

output:

1083

result:

ok single line: '1083'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3660kb

input:

74 74

output:

11

result:

ok single line: '11'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

188481480076382025 735477894373585094

output:

603589184

result:

ok single line: '603589184'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3724kb

input:

221018194823646727 598132723231895586

output:

593435414

result:

ok single line: '593435414'

Test #5:

score: 0
Accepted
time: 0ms
memory: 3740kb

input:

723254527395008082 857000792713570284

output:

130769773

result:

ok single line: '130769773'

Test #6:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

308610764995277671 886546357678103983

output:

981434297

result:

ok single line: '981434297'

Test #7:

score: 0
Accepted
time: 0ms
memory: 3672kb

input:

467129058436471616 929946560335162000

output:

956030241

result:

ok single line: '956030241'

Test #8:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

142308250729181166 793647580012269898

output:

890073540

result:

ok single line: '890073540'

Test #9:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

30010612464177072 225060844674934062

output:

192815207

result:

ok single line: '192815207'

Test #10:

score: 0
Accepted
time: 0ms
memory: 3612kb

input:

1 1

output:

0

result:

ok single line: '0'

Test #11:

score: 0
Accepted
time: 0ms
memory: 3724kb

input:

1 1000000000000000000

output:

826523937

result:

ok single line: '826523937'

Test #12:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

1 999999999999999999

output:

826523858

result:

ok single line: '826523858'

Test #13:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

4 16384

output:

311294

result:

ok single line: '311294'

Test #14:

score: 0
Accepted
time: 0ms
memory: 3612kb

input:

4398046511104 18014398509481984

output:

451815097

result:

ok single line: '451815097'

Test #15:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

4096 281474976710656

output:

231757660

result:

ok single line: '231757660'

Test #16:

score: 0
Accepted
time: 0ms
memory: 3596kb

input:

16 137438953472

output:

983959228

result:

ok single line: '983959228'

Test #17:

score: 0
Accepted
time: 0ms
memory: 3672kb

input:

8192 16777216

output:

570281997

result:

ok single line: '570281997'