Pagini recente » Cod sursa (job #2400561) | Cod sursa (job #1545314) | Cod sursa (job #722588) | Cod sursa (job #408199) | Cod sursa (job #186567)
Cod sursa(job #186567)
#include <stdio.h>
#include <algorithm>
#define lm LONG_MAX
#define n 3
struct punct
{
long x,y;
} a1[3],a2[3];
long long reza[4],rezp[4],mxx,mxy,mnx,mny,r;
inline long long min(long long a, long long b)
{
if (a>b)
return b;
else return a;
}
inline long long max(long long a, long long b)
{
if (a>b)
return a;
else return b;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for (int i=0; i<n; i++)
scanf("%ld %ld %ld %ld",&a1[i].x,&a1[i].y,&a2[i].x,&a2[i].y);
for (int i=1; i<1<<n; i++)
{
r=0;
mnx=mny=-lm;
mxx=mxy=lm;
long g=i;
for (int j=0; j<n; j++,g>>=1)
if (g & 1==1)
{
r++;
mnx=max(mnx,a1[j].x);
mny=max(mny,a1[j].y);
mxx=min(mxx,a2[j].x);
mxy=min(mxy,a2[j].y);
}
if (mnx<=mxx && mny<=mxy)
{
reza[r]=reza[r]+(mxx-mnx)*(mxy-mny);
rezp[r]=rezp[r]+(mxx-mnx+mxy-mny)*2;
}
}
reza[0]=reza[1]-reza[2]+reza[3];
rezp[0]=rezp[1]-rezp[2]+rezp[3];
printf("%lld %lld",reza[0],rezp[0]);
fclose(stdin);
fclose(stdout);
return 0;
}