Cod sursa(job #1956896)

Utilizator mariastStoichitescu Maria mariast Data 7 aprilie 2017 09:46:08
Problema Reuniune Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f ("reuniune.in");
ofstream g ("reuniune.out");
int ar,a[10],b[10],c[10],x,y,z,t,p;
int arie(int x,int y, int z,int t){
    return abs(z-x)*abs(t-y);
}
void cintersectie(int a[5],int b[5],int &x,int &y, int &z,int &t){
    x=max(b[1],a[1]);
    y=max(b[2],a[2]);
    z=min(b[3],a[3]);
    t=min(b[4],a[4]);
}
int perimetru(int x,int y, int z,int t){
    return 2*abs(z-x)+2*abs(t-y);
}
int main()
{
    f>>a[1]>>a[2]>>a[3]>>a[4];
    f>>b[1]>>b[2]>>b[3]>>b[4];
    f>>c[1]>>c[2]>>c[3]>>c[4];
    ar=arie(a[1],a[2],a[3],a[4])+arie(b[1],b[2],b[3],b[4])+arie(c[1],c[2],c[3],c[4]);
    p=perimetru(a[1],a[2],a[3],a[4])+perimetru(b[1],b[2],b[3],b[4])+perimetru(c[1],c[2],c[3],c[4]);
    cintersectie(a,b,x,y,z,t);
    ar-=arie(x,y,z,t);
    p-=perimetru(x,y,z,t);
    cintersectie(a,c,x,y,z,t);
    ar-=arie(x,y,z,t);
    p-=perimetru(x,y,z,t);
    cintersectie(b,c,x,y,z,t);
    ar-=arie(x,y,z,t);
    p-=perimetru(x,y,z,t);
    a[1]=x;
    a[2]=y;
    a[3]=z;
    a[4]=t;
    cintersectie(a,c,x,y,z,t);
    ar+=arie(x,y,z,t);
    p+=perimetru(x,y,z,t);
    g<<ar<<" "<<p;

}