Pagini recente » Cod sursa (job #2056688) | Cod sursa (job #1278098) | Cod sursa (job #3172357) | Cod sursa (job #2285258) | Cod sursa (job #2884525)
#include <fstream>
#include <algorithm>
#define int long long
using namespace std;
ifstream cin ("reuniune.in");
ofstream cout ("reuniune.out");
struct puncte
{
int xi, xf, yi, yf;
} a, b, c;
signed main()
{
cin >> a.xi >> a.yi >> a.xf >> a.yf;
cin >> b.xi >> b.yi >> b.xf >> b.yf;
cin >> c.xi >> c.yi >> c.xf >> c.yf;
a.xi += 1e9;
a.yi += 1e9;
b.xi += 1e9;
b.xf += 1e9;
c.xi += 1e9;
c.xf += 1e9;
a.xf += 1e9;
a.yf += 1e9;
b.yi += 1e9;
b.yf += 1e9;
c.yi += 1e9;
c.yf += 1e9;
int arieinitiala = (a.xf - a.xi) * (a.yf - a.yi) + (b.xf - b.xi) * (b.yf - b.yi) + (c.xf - c.xi) * (c.yf - c.yi);
int perimetruinitial = (a.xf - a.xi) + (a.yf - a.yi) + (b.xf - b.xi) + (b.yf - b.yi) +(c.xf - c.xi) + (c.yf - c.yi);
int abxi = max (a.xi, b.xi);
int abxf = min (a.xf, b.xf);
int abyi = max (a.yi, b.yi);
int abyf = min (a.yf, b.yf);
int acxi = max (a.xi, c.xi);
int acxf = min (a.xf, c.xf);
int acyi = max (a.yi, c.yi);
int acyf = min (a.yf, c.yf);
int cbxi = max (c.xi, b.xi);
int cbxf = min (c.xf, b.xf);
int cbyi = max (c.yi, b.yi);
int cbyf = min (c.yf, b.yf);
int intxi, intyi, intxf, intyf;
intxi = max (max (abxi, acxi), cbxi);
intxf = min (min(abxf, acxf), cbxf);
intyi = max (max (abyi, acyi), cbyi);
intyf = min (min(abyf, acyf), cbyf);
int ar1, ar2, ar3, arc;
ar1 = (abxf - abxi) * (abyf - abyi);
ar2 = (acxf - acxi) * (acyf - acyi);
ar3 = (cbxf - cbxi) * (cbyf - cbyi);
arc = (intxf - intxi) * (intyf - intyi);
cout << arieinitiala - ar1 - ar2 - ar3 + arc << ' ';
int per1, per2, per3, perc;
per1 = (abxf - abxi) + (abyf - abyi);
per2 = (acxf - acxi) + (acyf - acyi);
per3 = (cbxf - cbxi) + (cbyf - cbyi);
perc = (intxf - intxi) + (intyf - intyi);
cout << 2 * (perimetruinitial - per1 - per2 - per3 + perc) << '\n';
return 0;
}