ABC160c

很经典的断环成链的思路,最大的相邻间隔决定了我们需要绕行的最长距离。如果我们选择这个最大间隔的端点作为起点,其他房子到这个起点的路径将绕过这个最大间隔,从而最小化总路程。这点比较重要。

#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

const int N = 2e5 + 10;
int n, k;
int a[N * 2];
int main(){
    cin >> k >> n;
    for(int i = 0; i < n; i ++){
        cin >> a[i];
    }
    a[n] = a[0] + k;
    int l = 0;
    for(int i = 0; i < n; i++){
        l = max(l, a[i + 1] - a[i]);
    }
    cout << k - l << endl;
    return 0;
}
posted @ 2025-04-10 09:37  啦啦啦456123  阅读(19)  评论(0)    收藏  举报