ABC 338
Table of Contents
D - Island Tour
https://atcoder.jp/contests/abc338/tasks/abc338_d
解説 AC
void solve() {
ll n, m;
cin >> n >> m;
vll x(m);
rep(i, m) {
cin >> x[i];
x[i]--;
}
vll cumsum(n * 2 + 1, 0);
rep(i, m - 1) {
ll mi = min(x[i], x[i + 1]);
ll mx = max(x[i], x[i + 1]);
ll dr = mx - mi;
ll dl = n - dr;
cumsum[mi] += dl;
cumsum[mx] -= dl;
cumsum[0] += dr;
cumsum[mi] -= dr;
cumsum[mx] += dr;
cumsum[n] -= dr;
}
rep(i, n * 2) cumsum[i + 1] += cumsum[i];
ll ans = INF;
rep(i, n) chmin(ans, cumsum[i]);
cout << ans << endl;
}