Cod sursa(job #3363646)

Utilizator Cyb3rBoltSbora Ioan-David Cyb3rBolt Data 20 august 2026 12:28:41
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");

struct Iris {
    int x1, y1, x2, y2;
    void read() { fin >> x1 >> y1 >> x2 >> y2; }
}a, b, c;

inline Iris intersect(Iris a, Iris b) {
    Iris rez;
    rez.x1 = max(a.x1, b.x1);
    rez.x2 = min(a.x2, b.x2);
    rez.y1 = max(a.y1, b.y1);
    rez.y2 = min(a.y2, b.y2);
    return rez;
}

inline int arie(Iris p) {
    if(p.x1 > p.x2 || p.y1 > p.y2) return 0;
    int lat = p.x2 - p.x1;
    int lung = p.y2 - p.y1;
    return lat * lung;
}

inline int perimetru(Iris p) {
    if(p.x1 > p.x2 || p.y1 > p.y2) return 0;
    int lat = p.x2 - p.x1;
    int lung = p.y2 - p.y1;
    return 2 * (lat + lung);
}

int main()
{
    a.read();
    b.read();
    c.read();
    fout << arie(a) + arie(b) + arie(c) - arie(intersect(a, b)) - arie(intersect(a, c)) - arie(intersect(b, c)) + arie(intersect(a, intersect(b, c))) << " ";
    fout << perimetru(a) + perimetru(b) + perimetru(c) - perimetru(intersect(a, b)) - perimetru(intersect(a, c)) - perimetru(intersect(b, c)) + perimetru(intersect(a, intersect(b, c)));

    return 0;
}