Pagini recente » Borderou de evaluare (job #2019990) | Cod sursa (job #1362827) | Cod sursa (job #2958663) | Cod sursa (job #333151) | Cod sursa (job #1016699)
#include <fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
bool k=0;
long i,j,n,nr=0,nr2=0;
float a[1001],b[1001],v[500501];
long poz(long p,long u)
{long piv;
piv=v[p];
while(p<u)
{if(v[p]>v[u])
{float aux=v[u];v[u]=v[p];v[p]=aux;}
if(v[p]==piv)
u--;
else
p++;
}
return p;
}
void qs(long st, long dr)
{long k;
if(st<dr)
{k=poz(st,dr);
qs(st,k-1);
qs(k+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=1;
}
else
{nr++;
v[nr]=(b[j]-b[i])/(a[j]-a[i]);}
qs(1,nr);
for(i=1;i<nr-1;i++)
if(v[i]==v[i+1])
nr2++;
g<<nr2;
f.close();g.close();
return 0;
}