Cod sursa(job #1709272)

Utilizator UAICHePoBaMaHePoBaMa UAICHePoBaMa Data 28 mai 2016 11:33:49
Problema Metrou4 Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 1.1 kb
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int visited[150001];
int a_x[150001];
int a_y[150001];
int visit_x[150001];
int visit_y[150001];
int dist, bun, min;
int main()
{
	ifstream fin("metrou4.in");
	ofstream fout("metrou4.out");
	int nrteste;
	fin >> nrteste;
	for (int t = 1; t <= nrteste; t++)
	{
		long long total_cost = 0;
		int n;
		fin >> n;
		for (int i = 0; i < n; i++)
		{
			fin >> a_x[i]; fin >> a_y[i];
		}
		visit_x[0] = a_x[0];
		visit_y[0] = a_y[0];
		int vizitate = 1; visited[0] = 1;
		while (vizitate != n)
		{
			for (int j = 0; j < vizitate; j++)
			{
				 min = 1000000000;
				for (int k = 0; k < n; k++)
				{
					int dist = abs(visit_x[j] - a_x[k]) + abs(visit_y[j] - a_y[k]);
					if(dist<min&&visited[k]==0&&j!=k)
					{
						
						min = dist;
						bun = k;
					}
				}
			}
			vizitate++;
			visit_x[vizitate] = a_x[bun];
			visit_y[vizitate] = a_y[bun];
			total_cost += min;
			visited[bun] = 1;
			

		}
		fout << total_cost << endl;
		for (int i = 0; i < n; i++)
			visited[i] = 0;

	}
	
	return 0;
}