Cod sursa(job #2420506)

Utilizator HaiduculAndrei Popa Haiducul Data 12 mai 2019 14:03:04
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct fer {int x, y, u, v;}; /// x<=u si y<=v
fer dr[4];
fer inter(fer A, fer B)
{   fer Z;
    Z.x=max(A.x, B.x);
    Z.y=max(A.y, B.y);
    Z.u=min(A.u, B.u);
    Z.v=min(A.v, B.v);
    if(Z.x>Z.u || Z.y>Z.v) Z={0,0,0,0};
    return Z;
}
long long arie(fer A)
{   return 1LL*(A.u-A.x)*(A.v-A.y); }
long long per(fer A)
{   return 2LL*((A.u-A.x)+(A.v-A.y)); }
int main()
{   for(int i=1;i<=3;i++) f>>dr[i].x>>dr[i].y>>dr[i].u>>dr[i].v;
    long long tota=arie(dr[1])+arie(dr[2])+arie(dr[3])-arie(inter(dr[1],dr[2]))-arie(inter(dr[2],dr[3]))-arie(inter(dr[1],dr[3]))+arie(inter(inter(dr[1],dr[2]),dr[3]));
    long long totp=per(dr[1])+per(dr[2])+per(dr[3])-per(inter(dr[1],dr[2]))-per(inter(dr[2],dr[3]))-per(inter(dr[1],dr[3]))+per(inter(inter(dr[1],dr[2]),dr[3]));
    g<<tota<<" "<<totp;
    g.close();
    return 0;
}