刚刚 CF 的 Div2C
  • 板块学术版
  • 楼主Error_Yuan
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/8/17 00:42
  • 上次更新2023/10/27 15:02:56
查看原帖
刚刚 CF 的 Div2C
358748
Error_Yuan楼主2022/8/17 00:42

rt,WA 4发,人麻了。

感觉写的挺对的,求 hack。

#include <bits/stdc++.h>
using namespace std;

const int _N = 1e5 + 5;

int T, n, q, a[_N], mx[_N];

int main() {
	cin >> T;
	while (T--) {
		memset(mx, 0, sizeof(mx));
		memset(a, 0, sizeof(a));
		mx[0] = 0;
		cin >> n >> q;
		for (int i = 1; i <= n; i++) {
			cin >> a[i];
			mx[i] = mx[i - 1];
			if (a[i] > a[mx[i]]) mx[i] = i;
		}
		while (q--) {
			int w, k, ans = 0;
			cin >> w >> k;
			ans = 0;
			if (w == mx[n]) {
				if (mx[n] == 1) ans = k;
				else ans = k - mx[n] + 2;
			} else if (w > mx[n] || w != mx[w]) ans = 0;
			else {
				if (w - 2 > k) {
					ans = 0;
					continue;
				}
				int r = *upper_bound(mx + 1, mx + n + 1, w);
				if (w != 1) ans += 1;
				ans += min(k - w + 1, r - w - 1);
			}
			cout << ans << endl;
		}
	}
}
2022/8/17 00:42
加载中...