Pagini recente » Cod sursa (job #863520) | Cod sursa (job #100240) | Cod sursa (job #943105) | Cod sursa (job #621548) | Cod sursa (job #499417)
Cod sursa(job #499417)
#include<cstdio>
const int DRMAX = 10;
long long NR = 3;
long long x1[DRMAX], y1[DRMAX], x2[DRMAX], y2[DRMAX];
bool NA[DRMAX];
long long A, P;
inline long long min(long long a, long long b)
{
if(a < b)
return a;
return b;
}
inline long long max(long long a, long long b)
{
if(a > b)
return a;
return b;
}
void citire()
{
for(long long i = 1 ; i <= 3 ; i++)
scanf("%lld%lld%lld%lld", &x1[i], &y1[i], &x2[i], &y2[i]);
}
void coord(long long c1, long long c2)
{
x1[++NR] = max(x1[c1], x1[c2]);
y1[NR] = max(y1[c1], y1[c2]);
x2[NR] = min(x2[c1], x2[c2]);
y2[NR] = min(y2[c1], y2[c2]);
}
void rezolva()
{
for(long long i = 1 ; i <= 3 ; i++)
{
A += (x2[i] - x1[i])*(y2[i] - y1[i]);
P += 2*((x2[i] - x1[i])+(y2[i] - y1[i]));
}
coord(1, 2);
coord(1, 3);
coord(2, 3);
for(int i = 4 ; i <= 6 ; i++)
if((x2[i] - x1[i]) < 0 || (y2[i] - y1[i]) < 0)
NA[i] = true;
else if(x1[i] == x2[i] || y1[i] == y2[i])
{
if(x1[i] == x2[i] && y2[i] - y1[i] > 0)
P -= 2*(y2[i] - y1[i]);
else if(y1[i] == y2[i] && x2[i] - x1[i] > 0)
P -= 2*(x2[i] - x1[i]);
}
else
{
A -= (x2[i] - x1[i])*(y2[i] - y1[i]);
P -=2*((x2[i] - x1[i]) + (y2[i] - y1[i]));
}
if(!NA[4] && !NA[5] && !NA[6])
{
coord(4, 5);
A += (x2[7] - x1[7])*(y2[7] - y1[7]);
P += 2*((x2[7] - x1[7]) + (y2[7] - y1[7]));
}
}
void scrie()
{
if(NA[4] && NA[5] && NA[6])
{
printf("0 0");
return;
}
printf("%lld %lld", A, P);
}
int main()
{
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
citire();
rezolva();
scrie();
return 0;
}