Pagini recente » Cod sursa (job #1091869) | Cod sursa (job #3281947) | Cod sursa (job #3271639) | Cod sursa (job #1668866) | Cod sursa (job #712779)
Cod sursa(job #712779)
#include<fstream>
#include<algorithm>
#include<cmath>
#define MIC 0.0000000000001
using namespace std;
ifstream f("trapez.in");
ofstream g("trapez.out");
int N,i,j,x[1005],y[1005],k=0,trapez=0,r=0;
double pante[1005*1005];
//float lung[1000001];
void citire()
{
f>>N;
for (i=1;i<=N;i++)
f>>x[i]>>y[i];
}
void panta()
{
for (i=1;i<=N-1;i++)
for (j=i+1;j<=N;j++)
{
if (x[i]==x[j]) pante[++k]=2100000000;
else if (y[i]==y[j]) pante[++k]=0;
else pante[++k]=1.0*(y[j]-y[i])/(x[j]-x[i]);
// lung[k]=sqrt((float)(y[j]-y[i])*(y[j]-y[i])+(float)(x[j]-x[i])*(x[j]-x[i]));
}
}
int gaos(int a)
{
return a*(a+1)/2;
}
void caut()
{
trapez=0;r=0;
for (i=1;i<k;i++)
{
if (fabs(pante[i]-pante[i+1])<MIC)
{
r++;
}
else{trapez+=gaos(r);
r=0;}
}
if (r!=0) trapez+=gaos(r);
}
int main()
{
citire();
panta();
sort (pante+1,pante+k+1);
caut();
g<<trapez<<'\n';
f.close();
g.close();
return 0;
}