Cod sursa(job #1039323)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 22 noiembrie 2013 20:25:55
Problema Reuniune Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long Result1,Result2;
struct Rectangle{
int x1;
int y1;
int x2;
int y2;
};
Rectangle D1,D2,D3;
Rectangle Intersect(Rectangle x,Rectangle y)
{
    Rectangle result;
    result.x1=max(x.x1,y.x1);
    result.y1=max(x.y1,y.y1);
    result.x2=min(x.x2,y.x2);
    result.y2=min(x.y2,y.y2);
    if(result.x1>result.x2 || result.y1>result.y2)
        result.x1=result.x2=result.y1=result.y2=0;
    return result;
}
int Area(Rectangle x)
{
    return (x.x2-x.x1)*(x.y2-x.y1);
}
int Lenght(Rectangle x)
{
    return 2*(x.x2-x.x1+x.y2-x.y1);
}
void Read(Rectangle& x)
{
    f>>x.x1>>x.y1>>x.x2>>x.y2;
}
int main()
{
    Read(D1);
    Read(D2);
    Read(D3);
    Result1+=Area(D1)+Area(D2)+Area(D3)-Area(Intersect(D1,D2))-Area(Intersect(D2,D3))-Area(Intersect(D1,D3))+Area(Intersect(Intersect(D1,D2),D3));
    Result2+=Lenght(D1)+Lenght(D2)+Lenght(D3)-Lenght(Intersect(D1,D2))-Lenght(Intersect(D2,D3))-Lenght(Intersect(D1,D3))+Lenght(Intersect(Intersect(D1,D2),D3));
    g<<Result1<<" "<<Result2<<"\n";
    return 0;
}