ABC160 C - Traveling Salesman around Lake
問題はこちら
atcoder.jp
方針
一番距離の遠い家と家の間を避けて湖を一周すればいいです。 と の間は原点を通るので別で計算しています。
コード
#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; }