Pagini recente » Cod sursa (job #2101728) | Cod sursa (job #1258647) | Rating Munteanu Cezar (kez121) | Cod sursa (job #1234828) | Cod sursa (job #1017576)
#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,aux;
long poz(long st,long dr)
{piv=v[st];
while(st<dr)
{if(v[st]>v[dr])
swap(v[st],v[dr]);
if(v[st]==piv)
dr--;
else
st++;
}
return st;
}
void qs(long st, long dr)
{long z;
if(st<dr)
{z=poz(st,dr);
qs(st,z-1);
qs(z+1,dr);
}
}
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+1))/2;
k++;
}
else
{nr++;
v[nr]=(b[j]-b[i])/(a[j]-a[i]);
}
qs(1,nr);
i=1;j=0;q=0;
while(i<nr)
{if(v[i]==v[i+1])
{j++;
q=(j*(j+1))/2;
}
else
{nr2+=q;q=0;j=0;
}
i++;
}
nr2+=q;
g<<nr2;
f.close();g.close();
return 0;
}