Cod sursa(job #372245)
#include<fstream>
using namespace std;
typedef struct punct
{
int x, y;
} Tpunct;
Tpunct v[1001];
int n, i;
void citire()
{
ifstream f("trapez.in");
f>>n;
for(i=1;i<=n;i++)
f>>v[i].x>>v[i].y;
f.close();
}
int verificare(int a, int b, int c, int d)
{
float m1, m2, m3, m4;
m1=(float)(v[b].y-v[a].y)/(float)(v[b].x-v[a].x);
m2=(float)(v[c].y-v[b].y)/(float)(v[c].x-v[c].x);
m3=(float)(v[d].y-v[c].y)/(float)(v[d].x-v[c].x);
m4=(float)(v[d].y-v[a].y)/(float)(v[d].x-v[a].x);
if(m1==m2||m2==m3||m3==m4||m4==m1||m2==m4||m1==m3)
return 1;
return 0;
}
int cate_sunt()
{
int contor=0,a, b, c, d;
for(a=1;a<=n-3;a++)
for(b=a+1;b<=n-2;b++)
for(c=b+1;c<=n-1;c++)
for(d=c+1;d<=n;d++)
contor=contor+verificare(a, b, c, d);
return contor;
}
void afisare()
{
ofstream g("trapez.out");
g<<cate_sunt();
g.close();
}
int main()
{
citire();
afisare();
return 0;
}