Submission #1248757

#TimeUsernameProblemLanguageResultExecution timeMemory
1248757Bui_Quoc_CuongFish 3 (JOI24_fish3)C++20
9 / 100
2094 ms1864 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
using ll = long long;

const int maxN = 2e5 + 5;

int n, d, q;
int a[maxN];

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

namespace sub1 {
	int getAns(int l, int r) {
		int cur = a[r];
		int ans = 0;
		for (int i = r - 1; i >= l; i--) {
			if (a[i] > cur) {
				int l = 0, r = (a[i] - cur + d + 1) / d, res = - 1;
				while (l <= r) {
					int mid = (l + r) >> 1;
					if (a[i] - 1LL * mid * d <= cur) res = mid, r = mid - 1;
					else l = mid + 1;
				}
				if (res == - 1) return res;
				ans+= res;
				cur = a[i] - 1LL * res * d;
				if (cur < 0) return - 1;
			} else cur = a[i];
		}
		return ans;
	}

	void solve () {
		while (q--) {
			int l, r; cin >> l >> r;
			cout << getAns(l, r) << '\n';
		}
	}
}

void process () {
	sub1 :: solve();
}

signed main () {
    ios_base :: sync_with_stdio(0); cin.tie(0);   
    #define taskname "kieuoanh"
    if (fopen(taskname".inp", "r")) {  
        freopen(taskname".inp", "r", stdin); 
        freopen(taskname".out", "w", stdout);
    }
    init();
    process();
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:56:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   56 |         freopen(taskname".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:57:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   57 |         freopen(taskname".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...