求hack数据,不太清除错在哪里
查看原帖
求hack数据,不太清除错在哪里
1019606
KouMoSir楼主2023/9/28 01:19
#include<iostream>
using namespace std;
const int N = 5e5 + 10;
int n, m, k, t, res, a[N], b[N];
int main() {
	cin >> t;
	while (t--) {
		cin >> n >> m >> k;
		res = 0;
		for (int i = 1; i <= n; i++)cin >> a[i];
		for (int i = 1; i <= n;) {
			int tmp = i;
			while (a[tmp + 1] == a[i] && tmp < n)tmp++;
			if (tmp > i)b[i] = tmp, i = tmp + 1;
			else i++;
			res++;
		}
		for (int i = 1; i <= n; i++) {
			if (m == 0)break;
			if (b[i] - i >= 2 && m > 0 && (b[i] - i) % 2 == 0) {
				m--;
				res += 2;
				b[i + 2] = b[i];
				b[i] = 0;
			}
		}
		for (int i = 1; i <= n; i++) {
			if (m == 0)break;
			if (b[i] - i >= 3 && m > 0) {
				m--;
				res += 2;
				b[i + 2] = b[i];
				b[i] = 0;
			}
		}
		for (int i = 1; i <= n; i++) {
			if (m == 0)break;
			if (b[i] - i == 1 && m > 0) {
				m--;
				res += 1;
				b[i] = 0;
			}
		}
		cout << res << '\n';
	}
}
2023/9/28 01:19
加载中...