Pagini recente » Borderou de evaluare (job #769897) | Borderou de evaluare (job #2783158) | Borderou de evaluare (job #2912787) | Clasamentul arhivei educationale | Cod sursa (job #2617965)
#include <iostream>
#include <fstream>
#include <iterator>
#include <unordered_map>
using namespace std;
struct punct
{
float x;
float y;
};
unordered_map <float, int> aparitiePante;
float panta(punct a, punct b)
{
return ((b.y-a.y)/(b.x-a.x));
}
int main()
{
ifstream f("trapez.in");
ofstream g("trapez.out");
int n,i = 0;
punct v[1000];
f>>n;
while(!f.eof())
{
f>>v[i].x;
f>>v[i].y;
i++;
}
for(i = 0; i < n -1; i++)
for(int j = i + 1; j < n; j++)
{
aparitiePante[panta(v[i],v[j])]++;
}
int trapezPosibil = 0;
for(const auto &x : aparitiePante)
{
cout<<x.first<<", "<<x.second<<endl;
if(x.second > 1)
trapezPosibil += x.second*(x.second-1)/2;
}
g<<trapezPosibil;
}