Cod sursa(job #2082749)

Utilizator madalin98Gherghe Madalin madalin98 Data 6 decembrie 2017 19:14:21
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<cstdlib>
#include<math.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
typedef struct{
int x,y;
}punct;
int cmp(void const *a,void const *b)
{
    punct *pa=(punct*)a;
    punct *pb=(punct*)b;
    return pa->x - pb->x;
}
int main()
{
    int n,i,nr=0,vmax=0,j;
    punct a[1005],b[1005];
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i].x>>a[i].y;
    int k=0;
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
            if(a[j].x-a[i].x!=0){b[++k].x=fabs(a[j].y-a[i].y);
                                 b[k].y=fabs(a[j].x-a[i].x);
                                 if(b[k].y>vmax)vmax=b[k].y;
                                 }
                else nr++;
    for(i=1;i<=k;i++){
        b[i].x+=(vmax/b[i].y);
        b[i].y=vmax;
    }
    nr+=nr*(nr-1)/2;
    qsort(b,n,sizeof(punct),cmp);
    for(i=1;i<=k;i++)
        if(b[i].x==b[i].y)nr++;
    g<<nr;
    return 0;
}