Cod sursa(job #1649866)

Utilizator mirunazMiruna Zavelca mirunaz Data 11 martie 2016 15:28:05
Problema Trapez Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,j,h=0,x,xx,y,yy,ct=0;
struct sheldon{int l,c;};
sheldon v[1001],s[1000001];
bool sortare(sheldon a,sheldon b)
{
    if(a.l==b.l)
        return a.c<b.c;
    return a.l<b.l;
}
bool sortare2(sheldon a,sheldon b)
{
    return a.l*b.c<b.l*a.c;
}
FILE *in, *out;
int main ()
{
    in=fopen("trapez.in","r");
    out=fopen("trapez.out","w");
    fscanf(in,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(in,"%d %d",&v[i].l,&v[i].c);
    sort(v+1,v+n+1,sortare);
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
        {
            h++;
            s[h].l=v[j].l-v[i].l;
            s[h].c=v[j].c-v[i].c;
        }
    sort(s+1,s+h+1,sortare2);
    for(i=1;i<h;i++)
    {
        j=i+1;
        while(s[i].l*s[j].c == s[i].c*s[j].l && j<=h)
              j++;
        ct=ct+(j-i)*(j-i-1)/2;
        i=j-1;
    }
    fprintf(out,"%d\n",ct);
    return 0;
}