Cod sursa(job #2443574)

Utilizator AndreiCroitoruAndrei Croitoru AndreiCroitoru Data 28 iulie 2019 16:37:03
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#define int long long
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
int32_t main()
{
    int x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,s,s1;
    in>>x1>>y1>>x2>>y2; ///poligon 1
    in>>x3>>y3>>x4>>y4; ///poligon 2
    in>>x5>>y5>>x6>>y6; ///poligon 3
    s=(x2-x1)*(y2-y1)+(x4-x3)*(y4-y3)+(x6-x5)*(y6-y5); ///arie tot
    s=s-(min(x2,x4)-max(x1,x3))*(min(y2,y4)-max(y1,y3)); ///intersectie 1 2
    s=s-(min(x2,x6)-max(x1,x5))*(min(y2,y6)-max(y1,y5)); ///intersectie 1 3
    s=s-(min(x4,x6)-max(x3,x5))*(min(y4,y6)-max(y3,y5)); ///intersectie 2 3
    s=s+(min(min(x2,x4),x6)-max(max(x1,x3),x5))*(min(min(y2,y4),y6)-max(max(y1,y3),y5)); ///intersectii triple
    out<<s<<" ";
    s1=2*((x2-x1)+(y2-y1)+(x4-x3)+(y4-y3)+(x6-x5)+(y6-y5)); ///perimetru total
    s1=s1-2*((min(x2,x4)-max(x1,x3))+(min(y2,y4)-max(y1,y3))); /// intersectie 1 2
    s1=s1-2*((min(x2,x6)-max(x1,x5))+(min(y2,y6)-max(y1,y5))); ///intersectie 1 3
    s1=s1-2*((min(x4,x6)-max(x3,x5))+(min(y4,y6)-max(y3,y5))); ///intersectie 2 3
    s1=s1+2*((min(min(x2,x4),x6)-max(max(x1,x3),x5))+(min(min(y2,y4),y6)-max(max(y1,y3),y5))); ///intersectii triple
    out<<s1;
    return 0;
}