Official
C - 災害に強い通信ネットワーク / Disaster-Resistant Communication Network Editorial
by
C - 災害に強い通信ネットワーク / Disaster-Resistant Communication Network Editorial
by
physics0523
一般性を失わず、 \(X_1 \le X_2 \le \dots \le X_N\) として構いません。以降、そのようにしたと仮定します。
答えは \(2 \times (X_N - X_1)\) です。
\(X_1-X_2\) 間、 \(X_2-X_3\) 間、…、 \(X_{N-1}-X_N\) 間と \(X_N-X_1\) 間とにケーブルを敷設することで、問題文の条件を満たすように敷設できます。
また、それ未満の長さの敷設であれば、 \(X_1 \le x \le X_N\) なるある座標 \(x\) についてケーブルが \(1\) 本であるようなものが存在します。
\(N \ge 3\) であることから、そのような座標 \(x\) の直近の左右どちらかの都市を取り除くことで、左右が分断されたネットワークを得ることができます。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
int low=1.1e9,high=-1.1e9;
for(int i=0;i<N;i++){
int X;
cin >> X;
low=min(low,X);
high=max(high,X);
}
cout << 2*(high-low) << "\n";
return 0;
}
posted:
last update:
