Pagini recente » Cod sursa (job #1559928) | Cod sursa (job #2319745) | Cod sursa (job #2714157) | Cod sursa (job #2008373) | Cod sursa (job #1762536)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *f1=fopen("reuniune.in","r");
FILE *f2=fopen("reuniune.out","w");
long long x1[3],y1[3],x2[3],y2[3],xr1,yr1,xr2,yr2,arie,perim,i,sw=0;
void intersectie(int i,int j){
if (y2[i]<y1[j]) {
sw=1;
return;
}
if (y1[i]>y2[j]) {
sw=1;
return;
}
if (x2[i]<x1[j]) {
sw=1;
return;
}
if (x1[i]>x2[j]) {
sw=1;
return;
}
yr2=min(y2[i],y2[j]);
yr1=max(y1[i],y1[j]);
xr2=min(x2[i],x2[j]);
xr1=max(x1[i],x1[j]);
arie=arie-(xr2-xr1)*(yr2-yr1);
perim=perim-(xr2-xr1)-(yr2-yr1);
}
void intersectie3(){
int x1f,y1f,x2f,y2f;
if (sw==1) return;
if (yr2<y1[0]) {
return;
}
if (yr1>y2[0]) {
return;
}
if (xr2<x1[0]) {
return;
}
if (xr1>x2[0]) {
return;
}
y2f=min(yr2,y2[0]);
y1f=max(yr1,y1[0]);
x2f=min(xr2,x2[0]);
x1f=max(xr1,x1[0]);
arie=arie+(x2f-x1f)*(y2f-y1f);
perim=perim+(x2f-x1f)+(y2f-y1f);
}
int main(){
for (i=0;i<=2;i++){
fscanf(f1,"%lld%lld%lld%lld",&x1[i],&y1[i],&x2[i],&y2[i]);
arie=arie+(x2[i]-x1[i])*(y2[i]-y1[i]);
perim=perim+(x2[i]-x1[i])+(y2[i]-y1[i]);
}
intersectie(0,1);
sw=0;
intersectie(0,2);
sw=0;
intersectie(1,2);
intersectie3();
fprintf(f2,"%lld %lld",arie,2*perim);
fclose(f1);
fclose(f2);
return 0;
}