Submission #159963

#TimeUsernameProblemLanguageResultExecution timeMemory
159963combi1k1Worst Reporter 3 (JOI18_worst_reporter3)C++14
100 / 100
931 ms25496 KiB
#include<bits/stdc++.h>

using namespace std;

#define int long long

const int   N   = 5e5 + 5;

int d[N];
int n, q;

int get(int T,int P)    {
    int l = 0;
    int r = n + 1;
    for(; l < r ;)  {
        int m = (l + r) / 2;

        if (T / d[m] * d[m] < P + m)
            r = m;
        else
            l = m + 1;
    }
    return  l;
}

signed main()   {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    cin >> n >> q;

    d[0] = 1;

    for(int i = 1 ; i <= n ; ++i)   {
        int x;  cin >> x;
        int k = (d[i - 1] + x - 1) / d[i - 1];
        d[i] = k * d[i - 1];
    }

    for(int i = 1 ; i <= q ; ++i)   {
        int T;  cin >> T;
        int l;  cin >> l;
        int r;  cin >> r;

        cout << get(T,l) - get(T,r + 1) << "\n";
    }
}
/*
3 6
2
5
3
1 2 4
2 2 4
3 2 4
4 2 4
5 2 4
6 2 4
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...