Cod sursa(job #3362396)

Utilizator AndreiFaurFaur Andrei Bogdan AndreiFaur Data 8 august 2026 12:16:24
Problema Reuniune Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <fstream>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
long long x1[3], x2[3], y1[3], y2[3];
long long arie2(int i1, int i2) {
    long long ret=0;
    if(min(x2[i1], x2[i2])>max(x1[i1], x1[i2])&&min(y2[i1], y2[i2])>max(y1[i1], y1[i2])) {
        ret=(min(x2[i1], x2[i2])-max(x1[i1], x1[i2]))*(min(y2[i1], y2[i2])-max(y1[i1], y1[i2]));
    }
    return ret;
}
long long perim2(int i1, int i2) {
    long long ret=0;
    if(min(x2[i1], x2[i2])>max(x1[i1], x1[i2])&&min(y2[i1], y2[i2])>max(y1[i1], y1[i2])) {
        ret=(min(x2[i1], x2[i2])-max(x1[i1], x1[i2]))+(min(y2[i1], y2[i2])-max(y1[i1], y1[i2]));
        ret*=2;
    }
    return ret;
}
int main()
{
    long long i, arie=0, perim=0;
    for(i=0;i<3;i++) {
        fin >> x1[i] >> y1[i] >> x2[i] >> y2[i];
        arie+=(x2[i]-x1[i])*(y2[i]-y1[i]);
        perim+=((x2[i]-x1[i])+(y2[i]-y1[i]))*2;
    }
    arie-=arie2(0, 1);
    arie-=arie2(0, 2);
    arie-=arie2(1, 2);
    perim-=perim2(0, 1);
    perim-=perim2(0, 2);
    perim-=perim2(1, 2);
    if(min(x2[0], min(x2[1], x2[2]))>max(x1[0], max(x1[1], x1[2]))&&min(y2[0], min(y2[1], y2[2]))>max(y1[0], max(y1[1], y1[2]))) {
        arie+=(min(x2[0], min(x2[1], x2[2]))-max(x1[0], max(x1[1], x1[2])))*(min(y2[0], min(y2[1], y2[2]))-max(y1[0], max(y1[1], y1[2])));
    }
    if(min(x2[0], min(x2[1], x2[2]))>max(x1[0], max(x1[1], x1[2]))&&min(y2[0], min(y2[1], y2[2]))>max(y1[0], max(y1[1], y1[2]))) {
        perim+=((min(x2[0], min(x2[1], x2[2]))-max(x1[0], max(x1[1], x1[2])))+(min(y2[0], min(y2[1], y2[2]))-max(y1[0], max(y1[1], y1[2]))))*2;
    }
    fout << arie << ' ' << perim;
    return 0;
}