Pagini recente » Cod sursa (job #1560072) | Cod sursa (job #2791756) | Cod sursa (job #1487192) | Cod sursa (job #2788263) | Cod sursa (job #3129432)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long x[3][5],y[3][5],s[5],p[5];
void citire(int a){
f>>x[1][a]>>y[1][a]>>x[2][a]>>y[2][a];
}
void intersectie(int a,int b,int c){
x[1][4]=max(x[1][a],x[1][b]);
y[1][4]=max(y[1][a],y[1][b]);
x[2][4]=min(x[2][a],x[2][b]);
y[2][4]=min(y[2][a],y[2][b]);
if (x[1][4]<=x[2][4] && y[1][4]<=y[2][4]){
s[c]=(x[2][4]-x[1][4])*(y[2][4]-y[1][4]);
p[c]=2*((x[2][4]-x[1][4])+(y[2][4]-y[1][4]));
}
else{
s[c]=p[c]=0;
}
}
inline long long arie(int a){
return (x[2][a]-x[1][a])*(y[2][a]-y[1][a]);
}
inline long long perimetru(int a){
return 2*((x[2][a]-x[1][a])+(y[2][a]-y[1][a]));
}
int main()
{
citire(1);
citire(2);
citire(3);
intersectie(1,2,1);
intersectie(3,4,4);
intersectie(1,3,2);
intersectie(2,3,3);
g<<arie(1)+arie(2)+arie(3)-s[1]-s[2]-s[3]+s[4]<<' ';
g<<perimetru(1)+perimetru(2)+perimetru(3)-p[1]-p[2]-p[3]+p[4];
f.close();
g.close();
return 0;
}