Cod sursa(job #1188910)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 20 mai 2014 19:35:24
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int n, i, x, nr, j, k;
double d[4999501];
struct nod{
    int x, y;
}v[1001];
void solve(){
    scanf("%d ", &n);
    for(i = 1; i <= n; ++i)
        scanf("%d %d ", &v[i].x, &v[i].y);
    for(i = 1; i < n; ++i)
        for(j = i + 1; j <= n; ++j)
            if(v[i].x == v[j].x)
                d[++k] = 0x3f3f3f3f;
            else
                d[++k] = (double)(v[i].y - v[j].y) / (double)(v[i].x - v[j].x);
    sort(d + 1, d + k + 1);
    x = 1;
    for(i = 1; i <= k; ++i){
        if(d[i] == d[i + 1])
            ++x;
        else{
            if(2 <= x)
                nr += (x * (x - 1) / 2);
            x = 1;
        }
    }
    printf("%d\n", nr);
}
int main(){
    freopen("trapez.in", "r", stdin);
    freopen("trapez.out", "w", stdout);
    solve();
    return 0;
}