Cod sursa(job #2981167)

Utilizator Darius1414Dobre Darius Adrian Darius1414 Data 17 februarie 2023 14:16:37
Problema Patrate 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <map>
#define nmx 1001
using namespace std;
struct edge
{
    float panta;
    int xm;
    int ym;
    int length;
};
int n,a,b,x[nmx],y[nmx],ct;
map <edge,int> mymap;
int main()
{
    ifstream f ("patrate3.in");
    ofstream g ("patrate3.out");
    f>>n;
    for (int i=1; i<=n; i++)
    {
        f>>a>>b;
        x[i]=a*10000;
        y[i]=b*10000;
    }
    for (int i=1; i<=n; i++)
        for (int j=i+1; j<=n; j++)
        {

            edge ajutor;
            ajutor.panta=(float)((y[i]-y[j])/(x[i]-x[j]));
            ajutor.xm=x[i]+x[j];
            ajutor.ym=y[i]+y[j];
            ajutor.length=(y[i]-y[j])*(y[i]-y[j])+(x[i]-x[j])*(x[i]-x[j]);
            mymap[ajutor]++;
        }
    for (auto it : mymap)
        ct+=it.second*mymap[{(float)(-1/it.first.panta),it.first.xm,it.first.ym,it.first.length}];
    g<<ct/2;
}