Pagini recente » Cod sursa (job #85618) | Cod sursa (job #2472181) | Cod sursa (job #2532461) | Cod sursa (job #360547) | Cod sursa (job #1597143)
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
typedef long long ll;
struct rangle
{
ll x1,y1,x2,y2;
};
rangle a,b,c;
ll ar(rangle r)
{
return (r.x2 - r.x1) * (r.y2 - r.y1);
}
ll pr(rangle r)
{
return 2 * (r.x2 - r.x1) + 2 * (r.y2 - r.y1);
}
rangle inter(rangle st,rangle nd)
{
rangle aux;
aux.x1 = aux.x2 = aux.y1 = aux.y2 = 0;
if (st.x1 >= nd.x2 || st.x2 <= nd.x1 || st.y1 >= nd.y2 || st.y2 <= nd.y1)
return aux;
aux.x1 = max(st.x1,nd.x1);
aux.y1 = max(st.y1,nd.y1);
aux.x2 = min(st.x2,nd.x2);
aux.y2 = min(st.y2,nd.y2);
return aux;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld %lld %lld %lld",&a.x1,&a.y1,&a.x2,&a.y2);
scanf("%lld %lld %lld %lld",&b.x1,&b.y1,&b.x2,&b.y2);
scanf("%lld %lld %lld %lld",&c.x1,&c.y1,&c.x2,&c.y2);
printf("%lld ",ar(a) + ar(b) + ar(c) - ar(inter(a,b)) - ar(inter(a,c)) - ar(inter(b,c)) + ar(inter(a,inter(b,c))));
printf("%lld ",pr(a) + pr(b) + pr(c) - pr(inter(a,b)) - pr(inter(a,c)) - pr(inter(b,c)) + pr(inter(a,inter(b,c))));
return 0;
}