Pagini recente » Istoria paginii utilizator/nicky_dumitrache | Monitorul de evaluare | Cod sursa (job #1551268) | Cod sursa (job #160946) | Cod sursa (job #615945)
Cod sursa(job #615945)
#include <fstream>
#include <algorithm>
using namespace std;
double x[1000010];
struct Punct { int x;
int y;};
Punct p[1010];
int n, t;
long long suma=0;
void calcul()
{
int i, j;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(p[i].x-p[j].x!=0) x[++t]=(double)(p[i].y-p[j].y)/(double)(p[i].x-p[j].x);
else x[++t]=0x3f3f3f3f;
sort(x+1, x+t+1);
int nr=1;
for(i=2;i<=t;i++)
if(x[i]==x[i-1]) { nr++; }
else { suma+=(long long)(nr*(nr-1))/2; nr=1;}
suma+=(long long)(nr*(nr-1))/2;
}
int main()
{
ifstream myfile1 ("trapez.in");
ofstream myfile2 ("trapez.out");
if (myfile1.is_open())
{
myfile1>>n;
while (! myfile1.eof())
{
for(int i=1;i<=n;++i) myfile1>>p[i].x>>p[i].y;
}
}
calcul();
myfile2<<suma;
myfile1.close();
myfile2.close();
return 0;
}