Pagini recente » Monitorul de evaluare | Cod sursa (job #3362953) | Monitorul de evaluare | Cod sursa (job #3362935) | Cod sursa (job #3363647)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
#define int long long
struct Iris {
int x1, y1, x2, y2;
void read() { fin >> x1 >> y1 >> x2 >> y2; }
}a, b, c;
inline Iris intersect(Iris a, Iris b) {
Iris rez;
rez.x1 = max(a.x1, b.x1);
rez.x2 = min(a.x2, b.x2);
rez.y1 = max(a.y1, b.y1);
rez.y2 = min(a.y2, b.y2);
return rez;
}
inline int arie(Iris p) {
if(p.x1 > p.x2 || p.y1 > p.y2) return 0;
int lat = p.x2 - p.x1;
int lung = p.y2 - p.y1;
return lat * lung;
}
inline int perimetru(Iris p) {
if(p.x1 > p.x2 || p.y1 > p.y2) return 0;
int lat = p.x2 - p.x1;
int lung = p.y2 - p.y1;
return 2 * (lat + lung);
}
signed main()
{
a.read();
b.read();
c.read();
fout << arie(a) + arie(b) + arie(c) - arie(intersect(a, b)) - arie(intersect(a, c)) - arie(intersect(b, c)) + arie(intersect(a, intersect(b, c))) << " ";
fout << perimetru(a) + perimetru(b) + perimetru(c) - perimetru(intersect(a, b)) - perimetru(intersect(a, c)) - perimetru(intersect(b, c)) + perimetru(intersect(a, intersect(b, c)));
return 0;
}