关于ABC的C题,WA3个点。
  • 板块学术版
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/9/10 22:44
  • 上次更新2023/10/27 12:04:16
查看原帖
关于ABC的C题,WA3个点。
595521
封禁用户楼主2022/9/10 22:44

我觉得我的思路没有问题,但是他就是WA了3个点。

下大分。

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

typedef long long ll;
typedef pair<int, int> pii;

void fastio(const char *infile, const char *outfile) {
	if (infile) freopen(infile, "r", stdin);
	if (outfile) freopen(outfile, "w", stdout);
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
}

int n, q[200010], p[200010];
int del[200010], add[200010];

int main() {
	fastio(nullptr, nullptr);
	cin >> n;
	for (int i = 0; i < n; i++) cin >> q[i];
	for (int i = 0; i < n; i++) p[q[i]] = i;
	for (int i = 0; i < n; i++) {
		if ((i - 1 + n) % n == p[i]) {
			add[0]++;
			del[3]++;
		} else if (i == p[i]) {
			add[0]++;
			del[2]++;
		} else if ((i + 1) % n == p[i]) {
			add[0]++;
			del[1]++;
		} else {
			add[(p[i] + n - i) % n - 1]++;
			del[(p[i] + n - i) % n + 2]++;
		}
	}
	int now = 0, ans = 0;
	for (int i = 0; i < n; i++) {
		now -= del[i];
		now += add[i];
		ans = max(ans, now);
	}
	cout << ans << endl;
	return 0;
}
2022/9/10 22:44
加载中...