Pagini recente » Cod sursa (job #195770) | Monitorul de evaluare | Cod sursa (job #2425016) | Cod sursa (job #1666761) | Cod sursa (job #2145976)
#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;
}