Mai intai trebuie sa te autentifici.

Cod sursa(job #1850254)

Utilizator NarniussAnghelache Bogdan Narniuss Data 18 ianuarie 2017 13:51:51
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define infinit 2000000001
#define size 1001
using namespace std;

ifstream f("trapez.in");
ofstream g("trapez.out");
struct punct{
  int x;
  int y;
};
long long nrp;
double pante[size * size];
punct p[size];
int main()
{

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

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

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

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