Khi mua sắm trên khu Long Street, Michael thường đỗ xe của mình ở một vị trí nào đó và đi bộ vào cửa hàng. Bạn hãy giúp Michael chọn một chỗ đỗ xe để khoảng cách phải đi bộ khi mua hàng là nhỏ nhất.
Long Street có thể coi như là một đường thẳng mà tất cả những điểm mua hàng là các điểm có tọa độ nguyên. Bạn sẽ phải trả phí cho mỗi lần đỗ xe ở một điểm đỗ, điểm đỗ là một điểm có tọa độ nguyên. Michael không muốn trả tiền đỗ xe nhiều hơn 1 lần và vì anh ta rất khỏe nên có thể mang tất cả các túi xách, hàng hóa mua được giữa các cửa hàng cần đi mà không có vấn đề gì.
Dữ liệu vào
Dòng đầu tiên chứa một số nguyên 1 ≤ t ≤ 100 là số lượng bộ test. Mỗi bộ test gồm 2 dòng, dòng đầu tiên ghi số cửa hàng n mà Michael muốn qua mua hàng, 1 ≤ n ≤ 20 và dòng thứ hai ghi n số nguyên là các điểm này trên phố Long Street, 0 ≤ xi ≤ 99.
Dữ liệu ra
Với mỗi bộ test, in ra trên một dòng khoảng cách nhỏ nhất phải đi bộ với chỗ đỗ xe tối ưu.
INPUT | OUTPUT | |
2 4 6 7 30 41 14 39 42 | 152 70 |
#include<iostream>
int Test()
{
int n; //So cua hang
std::cin>>n;
int a[n]; //Mang luu toa do cua cua hang
for(int i=1;i<=n;++i)
std::cin>>a[i];
if( n ==1)return 0;
int max,min; // Toa do lon nhat va nho nhat
if(a[1]<a[2])
{
max = a[2];
min = a[1];
}
else
{
max = a[1];
min = a[2];
}
for(int i=1;i<=n;++i)
{
if(a[i] < min)min = a[i];
else if(a[i] > max) max = a[i];
}
n = max - min;
n <<=1;
return ( n);
}
int main()
{
int slg;
std::cin>>slg;
for(int i=1;i<= slg;++i)
{
std::cout<<Test()<<std::endl;
}
//system("pause");
return 0;
}
0 comments:
Post a Comment