Cod sursa(job #1850263)

Utilizator NarniussAnghelache Bogdan Narniuss Data 18 ianuarie 2017 14:09:21
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define infinit 2000000001
#define m 1001
using namespace std;



long long nrp;
double pante[m * m];
int x[m], y[m];
int main()
{
    ifstream f("trapez.in");
    ofstream g("trapez.out");

    int nr, j, i, k = 0, n;
    f>>n;
    for(i = 0 ; i < n ; i++){
      f>>x[i]>>y[i];
    }

    for(i = 0; i < n-1; i++)
        for(j = i + 1; j < n; j++){
          if(y[i] == y[j]) pante[k++] = infinit;
          else pante[k++] = (double) (x[i] - x[j])/(y[i] - y[j]);
        }
    sort(pante, pante + k);

    for(i = 0 ; i < k  ; i++){
        nr = 1;
        while(i < k - 1 && pante[i] == pante[i+1]){
          nr++;
          i++;
        }
        nrp += (long long) nr*(nr - 1) / 2;
    }

    g << nrp <<"\n";
    f.close();
    g.close();
     return 0;
}