Cod sursa(job #372252)

Utilizator alex@ndraAlexandra alex@ndra Data 9 decembrie 2009 09:03:18
Problema Trapez Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <iostream.h>
using namespace std;
typedef struct un_punct
{
        int x,y;
        }   PUNCT;
        

PUNCT v[1001];
int 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==m2||m1==m3||m1==m4||m2==m3||m2==m4||m3==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();
    
return 0;   
    
}