Pagini recente » Cod sursa (job #2432769) | Cod sursa (job #1776577) | Cod sursa (job #422952) | Cod sursa (job #2647842) | Cod sursa (job #1017316)
#include <fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
#include<stdio.h>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
long i,j,n,nr=0,nr2=0,q,k=0;
float a[1001],b[1001],v[500501],piv;
int compare(const void *a, const void *b)
{
return (*(float*)a - *(float*)b);
}
int main()
{f>>n;
for(i=1;i<=n;i++)
f>>a[i]>>b[i];
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[j]-a[i]==0)
{if(k)
nr2+=k;
k++;
}
else
{nr++;
v[nr]=1.0*((1.0*(b[j]-b[i]))/(1.0*(a[j]-a[i])));
}
sort(v+1,v+nr+1,greater<float>());
//qsort(v+1,nr+1,sizeof(float),compare);
for(i=1;i<nr-1;i++)
if(v[i]==v[i+1])
nr2++;
g<<nr2;
f.close();g.close();
return 0;
}
void qs(long st,long dr)
{
i=st;j=dr;
srand(time(0));
q=i+rand()%(j-i+1);
piv=v[q];
while(i<=j)
{while(v[i]<piv)
i++;
while(v[j]>piv)
j--;
if(i<=j)
{float aux=v[i];v[i]=v[j];v[j]=aux;
i++;j--;
}
}
if(st<=j)
qs(st,j);
if(dr>=i)
qs(i,dr);
for(i=1;i<=nr;i++)
g<<v[i]<<" ";
g<<'\n';
}