Cod sursa(job #1956902)

Utilizator mariastStoichitescu Maria mariast Data 7 aprilie 2017 09:50:17
Problema Reuniune Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f ("reuniune.in");
ofstream g ("reuniune.out");
long long ar,a[10],b[10],c[10],x,y,z,t,p;
long long arie(long long x,long long y, long long z,long long t){
    if(z>x&&t>y)return abs(z-x)*abs(t-y);
    return 0;
}
void cintersectie(long long a[5],long long b[5],long long &x,long long &y, long long &z,long long &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]);
}
long long perimetru(long long x,long long y, long long z,long long t){
    if(z>=x&&t>=y)return 2*abs(z-x)+2*abs(t-y);
    return 0;
}
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;

}