Cod sursa(job #2749070)

Utilizator ioana3317ioanapopescu ioana3317 Data 4 mai 2021 20:24:39
Problema Trapez Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("trapez.in");
ofstream fout("trapez.out");
struct point
{
    double x,y;
};
double dist(point p1, point p2)
{
    return sqrt((p2.y-p1.y)*(p2.y-p1.y)+(p2.x-p1.x)*(p2.x-p1.x));
}
bool ver (point pa1, point pa2, point pb1, point pb2)
{
    double a1,b1,c1,a2,b2,c2;
    a1=pa1.y-pa2.y;
    b1=pa1.x-pa2.x;
    c1=pa1.x*pa2.y-pa2.x*pa1.y;
    a2=pb1.y-pb2.y;
    b2=pb1.x-pb2.x;
    c2=pb1.x*pb2.y-pb2.x*pb1.y;
    if(a1*b2==b1*a2 && c2*b1!=c1*b2)
        return 1;
    else
        return 0;
}

point v[1002];
int main()
{
    int n,i,ok=0,cnt=0,j,y,l;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>v[i].x>>v[i].y;
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
            for(y=1;y<=n;y++)
            {
                if(y!=i && y!=j)
                    for(l=y+1;l<=n;l++)
                        if(l!=i || l!=j)
                        {
                            ok=ver( v[i], v[j], v[y], v[l] );
                            if(ok==1)
                            {
                                cnt++;
                                ok=0;
                            }
                        }
            }
    }
    fout<<cnt/2;
    return 0;
}