啊啊啊怎么写
查看原帖
啊啊啊怎么写
1293924
cola_0908楼主2024/12/4 16:23
#include <bits/stdc++.h>
using namespace std;
int abc(int l, int r, int k, int ps[1000007]) {
	int cnt1 = ps[r] - ps[l - 1];
	int len = r - l + 1;
	int cnt = len - cnt1;
	int p = (cnt1 == len) ? 1 : 0;
	int t = k + p;
	if (t > len || t < 0) {
		return -1;
	}
	if (k == 0) {
		return (len == 1 && cnt1 == 1) ? 0 : cnt1;
	}
	if (cnt > 0) {
		return (k > len || k - cnt1 == cnt) ? -1 : k - cnt1;
	}
	if (k == len) return 0;
	if (k > len) return -1;
	return len - k;
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n, q;
	cin >> n >> q;
	int ps[1000007]= {0};
	for (int i = 1; i <= n; i++) {
		int a;
		cin >> a;
		ps[i] = ps[i - 1] + a;
	}
	while (q--) {
		int l, r, k;
		cin >> l >> r >> k;
		cout << abc(l, r, k, ps) << endl;
	}
	return 0;
}
2024/12/4 16:23
加载中...