Submission #1242920

#TimeUsernameProblemLanguageResultExecution timeMemory
1242920hengliaoFish 3 (JOI24_fish3)C++20
9 / 100
2095 ms5104 KiB
#include<bits/stdc++.h>
using namespace std;

#define F first
#define S second
#define pll pair<ll, ll>
#define vll vector<ll>
#define pb push_back

typedef long long ll;

const ll mxN=3e5+5;
const ll inf=1e18;

ll n, d, q;
ll a[mxN];

ll ceil_div(ll x, ll y){
	return (x+y-1)/y;
}

void solve(){
	cin>>n>>d;
	for(ll i=0;i<n;i++){
		cin>>a[i];
	}
	cin>>q;
	while(q--){
		ll l, r;
		cin>>l>>r;
		l--; r--;
		ll ans=0;
		ll pre=inf;
		for(ll i=r;i>=l;i--){
			ll cur;
			if(a[i]<=pre){
				cur=a[i];
			}
			else{
				cur=a[i]-ceil_div(a[i]-pre, d)*d;
			}
			if(cur<0){
				ans=-1;
				break;
			}
			ans+=(a[i]-cur)/d;
			pre=cur;
		}
		cout<<ans<<'\n';
	}
}

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

	int t;
	t=1;

	while(t--){
		solve();
	}

	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...