版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35691619/article/details/78956976
hdu1008做了这题应该没啥问题
这道题需要注意相同楼层都会下,所以排一个序后,
后一项与前项比较,为正即上升,为负即为下降
当然还有格式,两个数之间有空格,不要在最后一个数后面有多余的空格
#include<stdio.h>
int main(void)
{
int n, T, m, sum, temp, num[105];
scanf("%d", &T);
while (T--) {
sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
int min, minPos;
for (int i = 0; i < n; i++) {
min = num[i];
minPos = i;
for (int j = i+1; j < n; j++) {
if (num[j] < min) {
min = num[j];
minPos = j;
}
}
int temp = num[minPos];
num[minPos] = num[i];
num[i] = temp;
}
sum = num[0]*6+6;
temp = num[0];
for (int i = 1; i < n; i++) {
if (num[i]-temp>0) {
sum += (num[i]-temp)*6 + 6;
} else if (temp-num[i] > 0) {
sum += (temp-num[i])*4 + 6;
} else if (temp == num[i]) {
sum += 1;
}
temp = num[i];
}
printf("%d\n", sum + num[n-1]*4);
}
return 0;
}