Submission #1322430

#TimeUsernameProblemLanguageResultExecution timeMemory
1322430adiatWorst Reporter 3 (JOI18_worst_reporter3)C++20
7 / 100
1058 ms7200 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
int bs(vector<int> &a, int n, int l, int r)
{
    int res=-1;
    int i=0,j=n-1;
    while(i<=j)
    {
        int mid=(i+j)/2;
        if(r-(r%a[mid])-mid-1>=l)
        {
            res=mid;
            i=mid+1;
        }
        else
        {
            j=mid-1;
        }
    }
    return res;
}
signed main()
{
    int n,q;
    cin>>n;
    cin>>q;
    vector<int> a(n);
    for(int &i: a) cin>>i;
    for(int i=1; i<n; i++)
    {
        int x=a[i-1];
        if(a[i]<=a[i-1]) a[i]=x;
        else a[i]=a[i]+x-a[i]%x;
    }
    // for(int i: a) cout<<i<<" ";
    while(q--)
    {
        int t,l,r;
        cin>>t>>l>>r;
        int ans=0, y=0,x;
        if(t<l) ans=0;
        else if(t==l) ans=1;
        else if(t>l && t<=r)
        {
            ans=1;
            r=t;
            x=bs(a, n, l, r);
            ans+=x-y+1;
        }
        else
        {
            y=bs(a, n, r+1, t);
            x=bs(a, n, l, t);
            // cout<<x<<y<<" ";
            ans+=x-y;
        }
        cout<<ans<<endl;
    }

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...