Cod sursa(job #2487590)

Utilizator roberttrutaTruta Robert roberttruta Data 4 noiembrie 2019 23:06:25
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>

using namespace std;
long long i,j,t,s,p;
const long long c=1000000000;
struct vct
{
    long long a,b,x,y;
}v[10],u[10];
int main()
{
    ifstream f("reuniune.in");
    ofstream g("reuniune.out");

    for(i=1;i<=3;i++)
    f>>v[i].a>>v[i].b>>v[i].x>>v[i].y;
    for(i=1;i<=3;i++)
    {
        v[i].a+=c;
        v[i].b+=c;
        v[i].x+=c;
        v[i].y+=c;
    }
    for(i=1;i<=3;i++)
    for(j=i+1;j<=3;j++)
    {
        u[++t].a=max(v[i].a,v[j].a);
        u[t].b=max(v[i].b,v[j].b);
        u[t].x=min(v[i].x,v[j].x);
        u[t].y=min(v[i].y,v[j].y);
    }
    v[4].a=max(v[1].a,max(v[2].a,v[3].a));
    v[4].b=max(v[1].b,max(v[2].b,v[3].b));
    v[4].x=min(v[1].x,min(v[2].x,v[3].x));
    v[4].y=min(v[1].y,min(v[2].y,v[3].y));

    for(i=1;i<=4;i++)
    if(v[i].a<=v[i].x && v[i].b<=v[i].y)
    {
        s+=(v[i].x-v[i].a)*(v[i].y-v[i].b);
        p+=2*(v[i].x-v[i].a)+2*(v[i].y-v[i].b);
    }
    for(i=1;i<=t;i++)
    if(u[i].a<=u[i].x && u[i].b<=u[i].y)
    {
        s-=(u[i].x-u[i].a)*(u[i].y-u[i].b);
        p-=2*(u[i].x-u[i].a)+2*(u[i].y-u[i].b);
    }
    g<<s<<' '<<p;



    return 0;
}