Cod sursa(job #3234579)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 10 iunie 2024 10:01:16
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
using namespace std;
ifstream fin ("reuniune.in");
ofstream fout ("reuniune.out");
struct dreptunghi
{
    long long x1,y1,x2,y2;
};
dreptunghi a,b,c;
long long f (long long x)
{
    if (x<0)
        return -x;
    return x;
}
dreptunghi intersect (dreptunghi a,dreptunghi b)
{
    dreptunghi c;
    c.x1=max (a.x1,b.x1);
    c.x2=min (a.x2,b.x2);
    c.y1=max (a.y1,b.y1);
    c.y2=min (a.y2,b.y2);
    if (!(c.x1<=c.x2&&c.y1<=c.y2))
        c.x1=0;
    return c;
}
long long aria (dreptunghi a)
{
    if (a.x1==1e9+1)
        return 0;
    return f ((a.x2-a.x1)*(a.y2-a.y1));
}
long long perim (dreptunghi a)
{
    if (a.x1==1e9+1)
        return 0;
    return 2*(f (a.x2-a.x1)+f (a.y2-a.y1));
}
int main ()
{
    fin>>a.x1>>a.y1>>a.x2>>a.y2;
    fin>>b.x1>>b.y1>>b.x2>>b.y2;
    fin>>c.x1>>c.y1>>c.x2>>c.y2;
    fout<<aria (a)+aria (b)+aria (c)-aria (intersect (a,b))-aria (intersect (a,c))-aria (intersect (b,c))+aria (intersect (a,intersect (b,c)))<<" ";
    fout<<perim (a)+perim (b)+perim (c)-perim (intersect (a,b))-perim (intersect (a,c))-perim (intersect (b,c))+perim (intersect (a,intersect (b,c)))<<"\n";
    return 0;
}