Cod sursa(job #2145976)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 27 februarie 2018 18:43:54
Problema Triang Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>
using namespace std;
 
ifstream in("triang.in");
ofstream out("triang.out");

const double eps = 0.0001;

double Distanta(pair< double, double > p1, pair< double, double > p2) {
	return sqrt((p1.first - p2.first) * (p1.first - p2.first) + (p1.second - p2.second) * (p1.second - p2.second));
}

bool Echilateral(double d1, double d2, double d3) {
	if(abs(d1 - d2) < eps && abs(d1 - d3) < eps && abs(d2 - d3) < eps)
		return 1;
	return 0;
}

int main() {

	int n; in >> n;

	vector< pair< double, double > > puncte(n);
	for(int i = 0; i < n; ++i) {
		in >> puncte[i].first >> puncte[i].second;
	}

	int ans = 0;
	for(int i = 0; i < n - 2; ++i) {
		for(int j = i + 1; j < n - 1; ++j) {
			double dist1 = Distanta(puncte[i], puncte[j]);
			for(int k = j + 1; k < n; ++k) {
				double dist2 = Distanta(puncte[i], puncte[k]);
				double dist3 = Distanta(puncte[j], puncte[k]);

				if(Echilateral(dist1, dist2, dist3) == 1)
					ans++;
			}
		}
	}

	out << ans << '\n';

    in.close(); out.close();
 
    return 0;
}