Pagini recente » Cod sursa (job #2099013) | Cod sursa (job #2931149) | Cod sursa (job #1961770) | Cod sursa (job #288080) | Cod sursa (job #2451208)
//
// main.cpp
// light2
//
// Created by Andu Andu on 26/08/2019.
// Copyright © 2019 Andu Andu. All rights reserved.
//
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("reuniune.in");
ofstream g ("reuniune.out");
int x1, x2, y2, y1;
struct dreptunghi
{
long long x,y,x2,y2;
long long arie() {
return 1LL * (x2 - x) * (y2 - y);
}
long long per() {
return ((x2 - x) + (y2 - y)) * 2LL;
}
};
bool isOK(long long x, long long y, dreptunghi a) {
return x >= a.x && x <= a.x2 && y >= a.y && y <= a.y2;
}
dreptunghi dr1, dr2, dr3, dr12, dr13, dr23, dr123;
dreptunghi seIntersecteaza(dreptunghi a, dreptunghi b) {
dreptunghi dr = {0, 0, 0, 0};
int maxx1, maxx2, min1, min2;
maxx1 = max(a.x, b.x);
maxx2 = max(a.y, b.y);
min1 = min(a.x2, b.x2);
min2 = min(a.y2, b.y2);
if (maxx1 <= min1 && maxx2 <= min2)
{
dr = {maxx1, maxx2, min1, min2};
}
return dr;
}
int main() {
f>>dr1.x>>dr1.y>>dr1.x2>>dr1.y2;
f>>dr2.x>>dr2.y>>dr2.x2>>dr2.y2;
f>>dr3.x>>dr3.y>>dr3.x2>>dr3.y2;
dr12 = seIntersecteaza(dr1, dr2);
dr123 = seIntersecteaza(dr12, dr3);
dr23 = seIntersecteaza(dr2, dr3);
dr13 = seIntersecteaza(dr1, dr3);
long long arie = dr1.arie() + dr2.arie() + dr3.arie() - dr12.arie() - dr13.arie() - dr23.arie() + dr123.arie();
long long perimetru = dr1.per() + dr2.per() + dr3.per() - dr12.per() - dr23.per() - dr13.per() + dr123.per();
g<<arie<<" "<<perimetru;
return 0;
}