Cod sursa(job #2406171)

Utilizator alex2209alexPavel Alexandru alex2209alex Data 15 aprilie 2019 14:19:37
Problema Cele mai apropiate puncte din plan Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
ifstream f("cmap.in");
ofstream g("cmap.out");
//--------------------------------
//Variabile globale
int n;
pair<double,double>v[100001];
//--------------------------------
//Functii
void citire();
void rezolvare();
//--------------------------------
int main()
{
	citire();
	rezolvare();
	return 0;
}
//--------------------------------
void rezolvare()
{
    long long mi = 1e18,dist,dist2;
	sort(v + 1,v + n + 1);
	for(int i = 1; i <= n; ++i)
		for(int j = i + 1; j <= n,j <= i + 8; ++j)
		{
		    int dist = v[i].x - v[j].x;
		    if(dist * dist > mi)
                continue;
            dist2=v[i].y - v[j].y;
            if(dist2 * dist2 + dist * dist < mi)
                mi = dist2 * dist2 + dist * dist;
		}
    g << setprecision(7) << fixed << sqrt(mi);
}
//--------------------------------
void citire()
{
	f >> n;
	for(int i = 1; i <= n; ++i)
		f >> v[i].x >> v[i].y;
}