Pagini recente » Cod sursa (job #3268037) | Cod sursa (job #685501) | Cod sursa (job #1493160) | Cod sursa (job #1202615) | Cod sursa (job #2761030)
//
// main.cpp
// patrate3
//
// Created by Vlad Calomfirescu on 14.05.2021.
//
#include <fstream>
#include <set>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin ("patrate3.in");
ofstream fout ("patrate3.out");
set < pair < int, int >>pct;
int
verif (pair < int, int >a, pair < int, int >b) // cautam o lat paralela
{
int distX, distY;
if (a == b)
{
return 0;
}
distX = a.second - b.second; //pe ox
distY = b.first - a.first; //dist dintre 2 pct oarecare //pe oy
return (pct.find ({a.first + distX, a.second + distY}) != pct.end () &&
pct.find ({b.first + distX, b.second + distY}) != pct.end ());
//verificam daca exista in p punctele ce ar completa patratul
}
// p.end=este in interiorul lui p sau nu
int
citeste () // citim si eliminam virgula din numar
{
double val;
fin >> val;
return round (val * 10000);
};
int
main ()
{
int n, i, rez = 0;
fin >> n;
for (i = n; i >= 0; i--)
{
pct.insert ( {citeste (), citeste ()} );
}
for (auto i:pct)
{
for (auto j:pct)
{
rez += verif (i, j);
}
}
fout << rez / 4 << '\n'; // impartim la 4 deoarece numaram fiecare patrat de 4 ori deoarece verificam fiecare lat
return 0;}