代码
70分
内存限制
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, N;
cin >> n >> N;
int A;
int f[N] = {0};
//int g[N] = {0};
for (int i=1; i<=n; i++) {
cin >> A;
f[A] = i;
}
int sum=0;
int r = N/(n+1);
for (int j=1; j<N; j++) {
if (f[j] < f[j-1]){
f[j] = f[j-1];
}
sum += abs(f[j] - j/r);
}
cout << sum;
return 0;
}
时间限制
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, N;
cin >> n >> N;
int A[n+1] = {0};
//int f[N] = {0};
//int g[N] = {0};
int sum=0;
int r = N/(n+1);
int k = 0;
for (int i=1; i<=n; i++) {
cin >> A[i];
for (int j=A[i-1]; j<A[i]; j++) {
sum += abs(i-1 - k/r);
k++;
}
}
for (int j=A[n]; j<N; j++) {
sum += abs(n - k/r);
k++;
}
cout << sum;
return 0;
}