RT,感觉自己的思路没毛病,但是WA了
https://atcoder.jp/contests/abc338/submissions/51519676
# include <bits/stdc++.h>
using namespace std;
long long arr[200010];
long long brr[200010];
int main(){
long long n,m;
cin>>n>>m;
for(long long i=0;i<m;i++){
cin>>arr[i];
}
long long a=0;
for(long long i=1;i<m;i++){
if(arr[i-1]<arr[i]){
long long x=arr[i]-arr[i-1];
long long y=arr[i-1]+n-arr[i];
// cout<<x<<" "<<y<<endl;
if(x<=y){
brr[arr[i-1]]+=y-x;
brr[arr[i]+1]-=y-x;
}else{
a+=x-y;
brr[arr[i-1]]-=x-y;
brr[arr[i]+1]+=x-y;
}
}else{
long long x=arr[i-1]-arr[i];
long long y=arr[i]+n-arr[i-1];
// cout<<x<<" "<<y<<endl;
if(x<=y){
brr[arr[i]]+=y-x;
brr[arr[i-1]+1]-=y-x;
}else{
a+=x-y;
brr[arr[i]]-=x-y;
brr[arr[i-1]+1]+=x-y;
}
}
}
long long minn=LONG_LONG_MAX;
long long mini;
for(long long i=1,sum=0;i<=n;i++){
sum+=brr[i];
if(minn>sum+a){
minn=sum+a;
mini=i;
}
}
// cout<<mini<<endl;
long long ans=0;
for(long long i=1;i<m;i++){
if(arr[i-1]<arr[i]){
long long x=arr[i]-arr[i-1];
long long y=arr[i-1]+n-arr[i];
// cout<<x<<" "<<y<<" ";
if(arr[i-1]<=mini&&mini<arr[i]){
// cout<<"#y"<<endl;
ans+=y;
}else{
// cout<<"#x"<<endl;
ans+=x;
}
}else{
long long x=arr[i-1]-arr[i];
long long y=arr[i]+n-arr[i-1];
// cout<<x<<" "<<y<<" ";
if(arr[i]<=mini&&mini<arr[i-1]){
// cout<<"#y"<<endl;
ans+=y;
}else{
// cout<<"#x"<<endl;
ans+=x;
}
}
}
cout<<ans;
return 0;
}