Cod sursa(job #2764266)

Utilizator Cochior_Iuliacochior iulia-stefana Cochior_Iulia Data 20 iulie 2021 09:50:44
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<iostream>
#include<cmath>
#include<fstream>
using namespace std;

ifstream f("reuniune.in");
ofstream g("reuniune.out");

long long ar,pe;

struct dreptunghi
{
    long long x0,y0,x1,y1,arie,perimetru;
}v[10];

dreptunghi intersectie(dreptunghi a, dreptunghi b)
{
    dreptunghi c;
    if(a.arie==0 || b.arie==0)
    {
        c.x0=c.x1=c.y0=c.y1=c.arie=c.perimetru=0;
    }
    else
    {
        c.x0=max(a.x0,b.x0);
        c.y0=max(a.y0,b.y0);
        c.x1=min(a.x1,b.x1);
        c.y1=min(a.y1,b.y1);
        c.arie=(c.x1-c.x0)*(c.y1-c.y0);
        c.perimetru=(c.x1-c.x0+c.y1-c.y0)*2;
    }
    return c;
}

int main()
{
    for(int i=1;i<=3;i++)
    {
        f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
        if(v[i].x0>v[i].x1 && v[i].y0>v[i].y1)
            v[i].arie=0;
        else
        {
             v[i].arie=(v[i].x1-v[i].x0)*(v[i].y1-v[i].y0);
             v[i].perimetru=(v[i].x1-v[i].x0+v[i].y1-v[i].y0)*2;
        }
    }
    v[4]=intersectie(v[1],v[2]);
    v[5]=intersectie(v[2],v[3]);
    v[6]=intersectie(v[1],v[3]);
    v[7]=intersectie(v[1],v[5]);
    ar=v[1].arie+v[2].arie+v[3].arie-v[4].arie-v[5].arie-v[6].arie+v[7].arie;
    pe=v[1].perimetru+v[2].perimetru+v[3].perimetru-v[4].perimetru-v[5].perimetru-v[6].perimetru+v[7].perimetru;
    g<<ar<<" "<<pe;
    return 0;
}