Pagini recente » Cod sursa (job #2157995) | Cod sursa (job #637700) | Cod sursa (job #589091) | Cod sursa (job #865806) | Cod sursa (job #2585157)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long int arieTotal, perimetruTotal;
struct hh{
int x1, y1;
int x2, y2;
};
hh dr[5], rez;
long long int Arie(hh a)
{
return 1ll * (a.x2 - a.x1) * (a.y2 -a.y1);
}
long long int Perimetru(hh a)
{
return 1ll * 2 * (a.x2 - a.x1) + 1ll * 2 * (a.y2 - a.y1);
}
void getDreptunghi(hh a, hh b)
{
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);
if(rez.x1 > rez.x2 || rez.y1 > rez.y2)
rez.x1 = 0, rez.x2 = 0, rez.y1 = 0, rez.y2 = 0;
}
int main()
{
for(int i = 1; i <= 3; i++)
{
f >> dr[i].x1 >> dr[i].y1 >> dr[i].x2 >> dr[i].y2;
arieTotal += Arie(dr[i]);
perimetruTotal += Perimetru(dr[i]);
}
for(int i = 1; i <= 3; i++)
{
for(int j = i + 1; j <= 3; j++)
{
getDreptunghi(dr[i], dr[j]);
arieTotal -= Arie(rez);
perimetruTotal -= Perimetru(rez);
}
}
getDreptunghi(dr[1], rez);
arieTotal += Arie(rez);
perimetruTotal += Perimetru(rez);
g << arieTotal << " " << perimetruTotal << "\n";
return 0;
}