제출 #166758

#제출 시각아이디문제언어결과실행 시간메모리
166758theStaticMindKrov (COCI17_krov)C++14
0 / 140
1579 ms3704 KiB
#include<bits/stdc++.h> #define mp make_pair #define pb push_back #define ii pair<int,int> #define all(x) (x).begin(),(x).end() #define INF 100000000000000000 #define modulo 1000000007 #define mod 998244353 #define int long long int using namespace std; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); // freopen("q.gir","r",stdin); // freopen("q.cik","w",stdout); int n; cin>>n; vector<int>arr(n); for(int i=0;i<n;i++)cin>>arr[i]; for(int i=0;i<n;i++)arr[i]--; vector<int>L(n,arr[0]); vector<int>R(n,arr[0]); for(int i=1;i<n;i++){ L[i]=L[i-1]+arr[i]-i; R[i]=R[i-1]+arr[i]+i; } int ans=INF; for(int i=0;i<n;i++){ long double sum=L[i]+(i+1)+R[n-1]-R[i]-(n-i-1); sum=sum/n; int mn=max(i,n-i-1); int down=sum; int up=ceil(sum); down=max(down,mn); up=max(up,mn); int a=0,b=0; for(int j=0;j<=i;j++){ a+=labs(down-(arr[j]-j+i)); b+=labs(up-(arr[j]-j+i)); } for(int j=i+1;j<n;j++){ a+=labs(down-(arr[j]+j-i)); b+=labs(up-(arr[j]+j-i)); } ans=min(ans,min(a,b)); } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...