Cod sursa(job #829284)

Utilizator lily3Moldovan Liliana lily3 Data 4 decembrie 2012 23:33:33
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include<fstream>
using namespace std;
 ofstream g("reuniune.out");

int i,j,l1,l2,arie,p;
struct drept
{
    int ix,iy,ox,oy;
};
drept a[4],c[4];
int lungime(int a,int b)
{
    return max(a,b)-min(a,b);
}
void intersectie(drept a,drept b)
{
    ++j;
    if((a.ix==b.ox&&a.iy==b.oy)||(a.ox==b.ix&&a.oy==b.iy))
    return ;
    if((a.ix<=b.ox&&a.iy<=b.oy)||(a.ox>=b.ix&&a.oy>=b.iy))
    {
        c[j].ix=max(a.ix,b.ix);
        c[j].iy=max(a.iy,b.iy);
        c[j].ox=min(a.ox,b.ox);
        c[j].oy=min(a.oy,b.oy);
    }
    l1=lungime(c[j].ix,c[j].ox);
    l2=lungime(c[j].iy,c[j].oy);
    //g<<c[j].ix<<" "<<c[j].iy<<" "<<c[j].ox<<" "<<c[j].oy<<" "<<l1<<" "<<l2<<"\n";
    if(j!=3)
    {
        arie-=(l1*l2);
        p-=2*(l1+l2);
    }
    else
    {
        arie+=(l1*l2);
        p+=2*(l2+l1);
    }
}
int main()
{
    ifstream f("reuniune.in");

    for(i=1;i<=3;++i)
    {
        f>>a[i].ix>>a[i].iy>>a[i].ox>>a[i].oy;
        l1=lungime(a[i].ox,a[i].ix);
        l2=lungime(a[i].iy,a[i].oy);
        p+=2*(l1+l2);
        arie+=l1*l2;
    }
    intersectie(a[1],a[2]);
    intersectie(a[1],a[3]);
   // intersectie(c[1],c[2]);
    g<<arie<<" "<<p<<"\n";

}