Cod sursa(job #1224327)

Utilizator tac1234Tran Bach Nguyen tac1234 Data 30 august 2014 16:23:23
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <cstdio>
#include <algorithm>
using namespace std;
struct DREPTUNGHI
{
    int x0,y0,x1,y1;
};
inline long long arie(DREPTUNGHI d)
{
    return (((long long)d.x1-d.x0)*(d.y1-d.y0));
}
inline long long perm(DREPTUNGHI d)
{
    return (((long long)d.x1-d.x0)+(d.y1-d.y0))<<1;
}
inline DREPTUNGHI intersectie(DREPTUNGHI di,DREPTUNGHI dj)
{
    DREPTUNGHI it;
    it.x0=max(di.x0,dj.x0);
    it.y0=max(di.y0,dj.y0);
    it.x1=min(di.x1,dj.x1);
    it.y1=min(di.y1,dj.y1);
    if (it.x1<it.x0 || it.y0>it.y1)
        it.x0=it.x1=it.y1=it.y0=0;
    return it;
}
DREPTUNGHI d1,d2,d3,i1,i2,i3,i;
int main()
{
    freopen("reuniune.in","r",stdin);
    freopen("reuniune.out","w",stdout);
    scanf("%d%d%d%d%d%d%d%d%d%d%d%d",&d1.x0,&d1.y0,&d1.x1,&d1.y1,&d2.x0,&d2.y0,&d2.x1,&d2.y1,&d3.x0,&d3.y0,&d3.x1,&d3.y1);
    i1=intersectie(d1,d2);
    i2=intersectie(d2,d3);
    i3=intersectie(d3,d1);
    i=intersectie(i1,d3);
    long long arietotal=arie(d1)+arie(d2)+arie(d3)+arie(i)-arie(i1)-arie(i2)-arie(i3);
    long long permtotal=perm(d1)+perm(d2)+perm(d3)+perm(i)-perm(i1)-perm(i2)-perm(i3);
    printf("%lld %lld\n",arietotal,permtotal);
    return 0;
}