Cod sursa(job #2410193)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 19 aprilie 2019 19:58:04
Problema Trapez Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <map>
using namespace std;

struct panta{
    int numa, numi;
};
struct co{
    int x, y;
}a[1005];

map<pair<int, int> , int> p;
int n;
int cmmdc(int x, int y){
    int r=0;
    while(y){
        r=x%y;
        x=y;
        y=r;
    }
    return x;
}

int comb(int n){
    return n*(n-1)/2;
}

int main() {

    freopen("trapez.in", "r", stdin);
    freopen("trapez.out", "w", stdout);
    scanf("%d", &n);
    for(int i=1; i<=n; ++i){
        scanf("%d %d", &a[i].x, &a[i].y);

    }
    for(int i=1; i<=n; ++i){
        for(int j=i+1; j<=n; ++j){
            int a1= a[i].y-a[j].y;
            int b1= a[i].x - a[j].x;
            int cmd=cmmdc(a1,b1);
            a1/=cmd;
            b1/=cmd;

            p[{a1,b1}]++;
        }
    }
    int rez=0;
    for(auto it:p){
        int x = it.second;
        rez+=comb(it.second);
    }
    printf("%d", rez);
    return 0;
}