Pagini recente » Cod sursa (job #404667) | Cod sursa (job #1163555) | Cod sursa (job #1069159) | Cod sursa (job #1679724) | Cod sursa (job #2082749)
#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;
}