Cod sursa(job #3217739)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 24 martie 2024 15:00:17
Problema Reuniune Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream cin("reuniune.in");
ofstream cout("reuniune.out");
struct coord {int x1, y1, x2, y2;} a, b, c, ab, bc, ca, abc;long long arie(coord& dr) {return (1LL)*(dr.x2-dr.x1)*(dr.y2-dr.y1);}long long perimetru(coord& dr) {return (1LL)*2*((dr.x2-dr.x1)+(dr.y2-dr.y1));}coord inter(coord& x, coord& y) {if(max(x.x1, y.x1)>min(x.x2, y.x2) || max(x.y1, y.y1)>min(x.y2, y.y2))return {0, 0, 0, 0};return {max(x.x1, y.x1), max(x.y1, y.y1), min(x.x2, y.x2), min(x.y2, y.y2)};}int main() {cin>>a.x1>>a.y1>>a.x2>>a.y2;cin>>b.x1>>b.y1>>b.x2>>b.y2;cin>>c.x1>>c.y1>>c.x2>>c.y2;ab=inter(a, b);bc=inter(b, c);ca=inter(c, a);abc=inter(ab, c);cout<<arie(a)+arie(b)+arie(c)-arie(ab)-arie(bc)-arie(ca)+arie(abc)<<" ";cout<<perimetru(a)+perimetru(b)+perimetru(c)-perimetru(ab)-perimetru(bc)-perimetru(ca)+perimetru(abc);}