Pagini recente » Cod sursa (job #2545797) | Cod sursa (job #2673105) | Cod sursa (job #250565) | Cod sursa (job #775574) | Cod sursa (job #469176)
Cod sursa(job #469176)
#include<fstream.h>
#include<iostream.h>
class drept{
public: int x0, y0, x1, y1;
drept() {}
drept(int a, int b, int c, int d){
x0 = a;
y0 = b;
x1 = c;
y1 = d;
}
};
int min(int a, int b){
if (a < b)
return a;
else return b;
}
int max(int a, int b){
if (a > b)
return a;
else return b;
}
int arie(drept d){
return ((d.x1-d.x0) * (d.y1-d.y0));
}
drept sup(drept d1, drept d2){
if (d1.x1 < d2.x0 || d1.y1 < d2.y0 || d2.x1 < d1.x0 || d2.y1 < d1.y0)
return drept(0, 0, 0, 0);
else
return drept(max(d1.x0, d2.x0), max(d1.y0, d2.y0), min(d1.x1, d2.x1), min(d1.y1, d2.y1));
}
int per(drept d){
if (d.x1 == d.x0)
return d.y1 - d.y0;
else
if (d.y1 == d.y0)
return d.x1 - d.x0;
else
return 2*((d.x1 - d.x0) + (d.y1 - d.y0));
}
int main(){
drept v[3];
int i, a, b, c, d;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
for (i = 0; i < 3; i++){
f>>a>>b>>c>>d;
v[i]=drept(a, b, c, d);
}
int ar = arie(v[0]) + arie(v[1]) +arie(v[2]) - arie(sup(v[0], v[1])) - arie(sup(v[0], v[2])) - arie(sup(v[2], v[1])) + arie(sup(sup(v[0], v[1]), v[2]));
int p = per(v[0]) + per(v[1]) + per(v[2]) - per(sup(v[0], v[1])) - per(sup(v[0], v[2])) - per(sup(v[2], v[1])) + per(sup(sup(v[0], v[1]), v[2]));
g<<ar<<" "<<p;
return 0;
}