Pagini recente » Cod sursa (job #2422793) | Cod sursa (job #461860) | Cod sursa (job #3169291) | Cod sursa (job #1792211) | Cod sursa (job #2300275)
#include <fstream>
using namespace std;
int t, n, x[150000], y[150000], cost, s[150000];
int abs(int x){
if (x<0)
return -x;
return x;
}
int dist(int a, int b){
return abs(x[b]-x[a])+abs(y[b]-y[a]);
}
int main(){
int i, j, mn, k;
ifstream fin ("metrou4.in");
fin >> t;
ofstream fout ("metrou4.out");
while (t--){
fin >> n;
for (i=0; i<n; i++)
fin >> x[i] >> y[i];
s[0]=-1;
for (i=1; i<n; i++)
s[i]=0;
cost=0;
for (i=1; i<n; i++){
k=-1; mn=1e9;
for (j=0; j<n; j++)
if (s[j]!=-1 && mn>dist(j, s[j])){
mn=dist(j, s[j]);
k=j;
}
cost+=dist(k, s[k]);
s[k]=-1;
for (j=0; j<n; j++)
if (s[j]!=-1 && dist(j, s[j])>dist(j, k))
s[j]=k;
}
fout << cost << '\n';
}
fout.close();
fin.close();
return 0;
}