제출 #1341466

#제출 시각아이디문제언어결과실행 시간메모리
1341466borisAngelovFish 3 (JOI24_fish3)C++20
9 / 100
2095 ms4984 KiB
#include <bits/stdc++.h>

using namespace std;

const int maxn = 300005;

int n, q;
long long a[maxn], d;

long long solve(int l, int r)
{
    long long last = a[r];
    long long ans = 0;

    for (int i = r - 1; i >= l; --i)
    {
        if (a[i] <= last)
        {
            last = min(last, a[i]);
        }
        else
        {
            long long cnt = (a[i] - last - 1) / d + 1;

            if (a[i] - cnt * d < 0) 
            {
                return -1;
            }

            ans += cnt;
            last = min(last, a[i] - cnt * d);
        }
    }

    return ans;
}

void fastIO()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
}

int main()
{
    fastIO();

    cin >> n >> d;

    for (int i = 1; i <= n; ++i)
    {
        cin >> a[i];
    }

    cin >> q;

    for (int i = 1; i <= q; ++i)
    {
        int l, r;
        cin >> l >> r;
        cout << solve(l, r) << "\n";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...