QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#746402#5587. Distinct Parity Excessi24TL 293ms18780kbC++141.3kb2024-11-14 14:30:092024-11-14 14:30:13

Judging History

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

  • [2024-11-14 14:30:13]
  • 评测
  • 测评结果:TL
  • 用时:293ms
  • 内存:18780kb
  • [2024-11-14 14:30:09]
  • 提交

answer

// File generated on 24/11/13 21:58 by Anand

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

#define fastio ios::sync_with_stdio(false); cin.tie(0)
#define rep(i, m, n)  for (long long i = m; i < n; i++)
#define DEBUG(x) cout << "debug: " << x << "\n"
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define pb push_back
#define sz size

typedef long long ll;
typedef pair<ll,ll> pll;
typedef vector<ll> vec;
typedef vector<vec> vecc;
typedef vector<pll> vecp;

ll f(ll n) {
    ll c = 0;
    if (n%2==0) c++;
    while(n%2==0) n/=2;

    for(ll i = 3; i <= sqrtl(n); i+=2) {
        if (n == 1) break;
        if (n%i==0) c++;
        while(n%i==0) n/=i;
    }

    if (n > 2) c++;

    return c;
}

ll N = 0;
ll M = 1e8;

void SOLVE() {
    ll n; cin >> n;
    vecp u(n);
    rep(i,0,n) {ll x, y; cin >> x >> y; u[i] = {x,y}; N = max(N, y); M = min(M, x);}
    N++;
    vec a(N);
    vec b(N);
    rep(i,M,N) {
        if (f(i)&1) {b[i] = b[i-1] + 1; a[i] = a[i-1];}
        else {a[i] = a[i - 1] + 1; b[i] = b[i-1];}
    }

    rep(i,0,n) {
        ll l = u[i].first;
        ll r = u[i].second;
        cout << a[r] - a[l - 1] - b[r] + b[l - 1] << "\n";
    }
}

signed main() {
    fastio;


		SOLVE();

    return 0;
}


详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3788kb

input:

3
2 2
2 5
2 10

output:

-1
-4
-5

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 293ms
memory: 18780kb

input:

8
2 100
2 50
50 100
2 1000
100 143
2 1000000
80000 90000
1000000 1000000

output:

13
-1
15
63
0
-1909
-31
1

result:

ok 8 lines

Test #3:

score: 0
Accepted
time: 260ms
memory: 17932kb

input:

10
382245 819896
541000 940657
146832 465833
603509 801534
298623 379575
375605 402241
131337 581395
92899 271294
718706 825535
714017 861484

output:

-784
-608
-518
-88
-253
-41
-1067
-646
-386
-44

result:

ok 10 lines

Test #4:

score: -100
Time Limit Exceeded

input:

10
5029986 7710504
2780724 8715606
1124900 1304897
1391064 2877235
6811377 8645635
3609999 9999334
3611675 6616197
3599993 6888463
4602820 8926934
948628 1015372

output:


result: