Cod sursa(job #1360912)

Utilizator danstefanDamian Dan Stefan danstefan Data 25 februarie 2015 18:43:18
Problema Trapez Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <cstdio>
#include <algorithm>
#define eps 1e-12
using namespace std;
int i,n,j,k,v[1500],x[1500],nr;
long long sol=0;
double p[3000010];
int main()
{
    freopen("trapez.in","r",stdin);
    ofstream g ("trapez.out");
    scanf("%d\n",&n);
    for(i=1; i<=n; i++)
        scanf("%d %d\n",&v[i],&x[i]);
    for(i=1; i<n; i++)
        for(j=i+1; j<=n; j++)
       if(v[i]-v[j]!=0){k++;p[k]=1.0*(x[i]-x[j])/(v[i]-v[j]);}
       sort(p+1,p+k+1);
       i=2;
       while (i<=k)
       {
           nr=1;
           while (p[i]-p[i-1]<eps&&p[i]-p[i-1]>-eps)
           {
               i++;
               nr++;
           }
           sol+=1LL*nr*(nr-1)/2;
           if (nr==1)i++;
       }
    g<<sol;
    return 0;
}