比赛 2026.3.14 评测结果 AWWWTTTTTTTTTTTTTTTTTT
题目名称 Circle of Cows 最终得分 4
用户昵称 ChenBp 运行时间 55.822 s
代码语言 C++ 内存使用 3.42 MiB
提交时间 2026-03-14 12:03:00
显示代码纯文本
#include <iostream>
using namespace std;
int l[1003];
int n, c;
bool vis[1005];
int ans;
int k;
int dis(int a, int b) {
    int d = l[b] - l[a];
    return min(d, c - d);
}
void dfs(int la, int pd, int now) {
    if (pd == k) {
        ans = max(ans, now);
        return;
    }
    int x = -1;
    for (int i = la; i <= n; i++) {
        if (!vis[i]) {
            x = i;
            break;
        }
    }
    if (x == -1) return;
    vis[x] = 1;
    for (int i = x + 1; i <= n; i++) {
        if (!vis[i]) {
            vis[i] = 1;
            dfs(x + 1, pd + 1, min(now, dis(x, i)));
            vis[i] = 0;
        }
    }
    vis[x] = 0;
}
int main() {
    freopen("Cows.in", "r", stdin);
    freopen("Cows.out", "w", stdout);
    cin >> n >> c;
    bool t1 = 1;
    for (int i = 1; i <= n; i++) {
        cin >> l[i];
        if (l[i] * 2 > c) t1 = 0;
    }
    if (t1) {
        for (k = 1; k * 2 <= n; k++) {
            int ans = c;
            for (int i = 1; i <= k; i++) {
                ans = l[n - k + i] - l[i];
            }
            cout << ans << " ";
        }
    } else {
        for (k = 1; k * 2 <= n; k++) {
            ans = 0;
            for (int i = 1; i <= n; i++) vis[i] = 0;
            dfs(1, 0, 1e9);
            cout << ans << " ";
        }
    }
    return 0;
}