Cod sursa(job #2653466)

Utilizator sebi_info1Olaru Sebastian sebi_info1 Data 28 septembrie 2020 10:14:03
Problema Reuniune Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
using namespace std;
struct drept {int x,y,a,b;};
drept d[4];
int ar(drept D)
{   return (D.a-D.x)*(D.b-D.y);}
int per(drept D)
{   return 2*((D.a-D.x)+(D.b-D.y));}
drept inters(drept A, drept B)
{   int x=max(A.x,B.x);
    int y=max(A.y,B.y);
    int a=min(A.a,B.a);
    int b=min(A.b,B.a);
    drept v={0,0,0,0};
    if(x<=a and y<=b) {v.x=x; v.y=y; v.a=a; v.b=b;}
    return v;
}
int main()
{   for(int i=1;i<=3;i++) cin>>d[i].x>>d[i].y>>d[i].a>>d[i].b;
    int perimetru,arie;
    arie=ar(d[1])+ar(d[2])+ar(d[3])-ar(inters(d[1],d[2]))-ar(inters(d[1],d[3]))-ar(inters(d[2],d[3]))+ar(inters(inters(d[1],d[2]),d[3]));
    perimetru=per(d[1])+per(d[2])+per(d[3])-per(inters(d[1],d[2]))-per(inters(d[1],d[3]))-per(inters(d[2],d[3]))+per(inters(inters(d[1],d[2]),d[3]));
    cout<<arie<<" "<<perimetru;
    return 0;
}