頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC160 C - Traveling Salesman around Lake

問題はこちら
atcoder.jp

方針

一番距離の遠い家と家の間を避けて湖を一周すればいいです。A_NA_0 の間は原点を通るので別で計算しています。

コード

#include <bits/stdc++.h>
using namespace std;
 
int main(){
    int k,n;
    cin>>k>>n;
 
    vector<int> a(n);
    for(int i=0; i<n; i++){
        cin>>a.at(i);
    }
 
    int d_max=0;
    for(int i=0; i<n-1; i++){
        if(d_max<a.at(i+1)-a.at(i)){
            d_max=a.at(i+1)-a.at(i);
        }
    }
 
    int d_0n=(k-a.at(n-1))+a.at(0);
 
    cout<<min(k-d_max,k-d_0n)<<endl;
}