问题描述
问题分析
记录数字的下标存入$a[t]=i$
然后直接累加$abs(a[i+1]-a[i])$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include<stdio.h>
int a[1000000];
int abs(int m){
return m>0?m:-m;
}
int main() {
int n;
while(scanf("%d",&n)!=EOF) {
for(int i=1; i<=n; i++) {
int t;
scanf("%d",&t);
a[t]=i;
}
__int64 sum=0;
for(int i=1; i<n; i++) {
sum+=(__int64)abs(a[i]-a[i+1]);
}
printf("%I64d\n",sum);
}
return 0;
}
|