Cod sursa(job #2376121)

Utilizator mihai2003LLL LLL mihai2003 Data 8 martie 2019 13:43:50
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>

std::ifstream in("reuniune.in");
std::ofstream out("reuniune.out");
struct dreptunghi{
    int x1,y1,x2,y2;
}d[3];
dreptunghi inter(dreptunghi a,dreptunghi b){
    return dreptunghi{std::max(a.x1,b.x1),std::max(a.y1,b.y1),std::min(a.x2,b.x2),std::min(a.y2,b.y2)};
}
long long arie(dreptunghi a){
    return (a.x2-a.x1)*(a.y2-a.y1);
}
long long perimetru(dreptunghi a){
    return (a.x2-a.x1)*2+(a.y2-a.y1)*2;
}
int main(){
    for(int i=0;i<3;i++)
        in>>d[i].x1>>d[i].y1>>d[i].x2>>d[i].y2;
    out<<arie(d[0])+arie(d[1])+arie(d[2])
    -arie(inter(d[0],d[1]))-arie(inter(d[0],d[2]))
    -arie(inter(d[1],d[2]))+arie(inter(inter(d[0],d[1]),d[2]))<<" "<<
        perimetru(d[0])+perimetru(d[1])+perimetru(d[2])
    -perimetru(inter(d[0],d[1]))-perimetru(inter(d[0],d[2]))
    -perimetru(inter(d[1],d[2]))+perimetru(inter(inter(d[0],d[2]),d[1]))
    ;
    return 0;
}