F题Ssyze's Hard Drive
原题链接
解题思路
磁头从位置 x 移动到位置 y 所需的寻道距离为 |y-x|,为两磁道相对距离。
则从最小位置磁道顺序移动至最大位置磁道即可经过所有目标磁道。
所求转化为初始位置到最小位置或最大位置的较小值。
AC代码
#include <iostream>
using namespace std;
int main(void)
{
int n, s, t, min, max;
int r, d1, d2;
cin >> n >> s;
cin >> t;
min = max = t;
n--;
while (n--)
{
cin >> t;
if (t < min)
min = t;
if (t > max)
max = t;
}
r = max - min;
d1 = s - min;
if (d1 < 0)
d1 = -d1;
d2 = max - s;
if (d2 < 0)
d2 = -d2;
r += (d1 < d2) ? d1 : d2;
cout << r;
return 0;
}
京公网安备 11010502036488号