比赛 2026.3.14 评测结果 AATTAAAAAAAAAATTTTTTTT
题目名称 Circle of Cows 最终得分 52
用户昵称 终焉折枝 运行时间 31.276 s
代码语言 C++ 内存使用 3.58 MiB
提交时间 2026-03-14 12:55:27
显示代码纯文本
#include<iostream>
#include<algorithm>
using namespace std;

#define ll long long
#define ciallo(x) cerr << x << ' '
#define Ciallo(x) cerr << x << '\n'
const int MAXN = 2005;
int n;
ll c;
ll p[MAXN];
bool v[MAXN];

bool check_l(int s, int mid, int k){
	int i = s, j = s + k, cnt = 0;
	for(int x = s;x < s + n;x ++) v[x] = 0;
	while(i < s + n && j < s + n && cnt < k){
		if(v[i]){
			i ++;
			continue;
		}
		if(j < i + k) j = i + k;
		if(j >= s + n) break;
		if(v[j]){
			j ++;
			continue;
		}
		ll d1 = p[j] - p[i];
		ll d2 = p[i] + c - p[j];
		if(d1 < mid){
			j ++;
		}
		else if(d2 < mid){
			i ++;
		}
		else{
			v[i] = v[j] = 1;
			cnt ++;
			i ++;
			j ++;
		}
	}
	return cnt >= k;
}

bool check(ll mid, int k){
	for(int s = 0;s < n;s ++){
		if(check_l(s, mid, k)) return true;
	}
	return false;
}

int main(){
	freopen("Cows.in", "r", stdin);
	freopen("Cows.out", "w", stdout);
	cin.tie(0) -> ios::sync_with_stdio(0);
	cin >> n >> c;
	for(int i = 0;i < n;i ++){
		cin >> p[i];
	}
	sort(p, p + n);
	for(int i = 0;i < n;i ++){
		p[i + n] = p[i] + c;
	}
	for(int k = 1;k <= n / 2;k ++){
		ll l = 0, r = c / 2, ans = 0;
		while(l <= r){
			ll mid = (l + r) >> 1;
			if(check(mid, k)){
				ans = mid;
				l = mid + 1;
			}
			else r = mid - 1;
		}
		cout << ans << ' ';
	}
	return 0;
}