Cod sursa(job #1823745)

Utilizator AlexandruLuchianov1Alex Luchianov AlexandruLuchianov1 Data 6 decembrie 2016 19:52:53
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in ("reuniune.in");
ofstream out ("reuniune.out");
struct square {
  long long x1;
  long long x2;
  long long y1;
  long long y2;
};
square intersectie(square a ,square b){
  square p;
  p.x2 = min(a.x2,b.x2);
  p.x1 = max(a.x1,b.x1);
  p.y2 = min(a.y2,b.y2);
  p.y1 = max(a.y1,b.y1);
  if(p.x2 - p.x1 < 0)
     p.x2 = p.x1 = p.y2 = p.y1 = 0;
  if(p.y2 - p.y1 < 0)
     p.x2 = p.x1 = p.y2 = p.y1 = 0;
  return p;
}
long long spatiu(square p ){
  return (p.x2-p.x1)*(p.y2-p.y1);
}
long long perimetru(square p ){
  return (p.x2-p.x1)*2+(p.y2-p.y1)*2;
}
int main()
{
    square a,b,c;
    in>>a.x1>>a.y1>>a.x2>>a.y2;
    in>>b.x1>>b.y1>>b.x2>>b.y2;
    in>>c.x1>>c.y1>>c.x2>>c.y2;
    out<<spatiu(a)+spatiu(b)+spatiu(c)-spatiu(intersectie(a,b))-spatiu(intersectie(a,c))-spatiu(intersectie(c,b))+spatiu(intersectie(a,intersectie(b,c)))<<" ";
    out<<perimetru(a)+perimetru(b)+perimetru(c)-perimetru(intersectie(a,b))-perimetru(intersectie(a,c))-perimetru(intersectie(c,b))+perimetru(intersectie(a,intersectie(b,c)));
    return 0;
}