Cod sursa(job #372257)

Utilizator jasminaMendoiu Cosmina jasmina Data 9 decembrie 2009 09:08:56
Problema Trapez Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iostream>
using namespace std;
typedef struct un_punct
{long x,y;
        }   PUNCT;
        
PUNCT v[1001];
long n,i;
void citire()
{
ifstream fin("trapez.in");
  fin>>n;
for(i=1;i<=n;i++)
  fin>>v[i].x>>v[i].y;
  fin.close();
}

int verifica(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[b].x);
        m3=(float)(v[d].y-v[c].y)/(float)(v[d].x-v[c].x);
        m4=(float)(v[a].y-v[d].y)/(float)(v[a].x-v[d].x);
        if ((m1==m3)&&(m2==m4)) return 2;
        else if ((m1==m3)||(m2==m4)) return 1;
        else return 0;
}

int cate_trapeze()
{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+verifica(a,b,c,d);
return contor;
}

int main()
{citire();
 ofstream fout("trapez.out");
 fout<<cate_trapeze();
 fout.close();
}