Pagini recente » Cod sursa (job #1057776) | Cod sursa (job #487712) | Cod sursa (job #957568) | Istoria paginii runda/incercam/clasament | Cod sursa (job #167514)
Cod sursa(job #167514)
#include<stdio.h>
#define inf 1000
struct drept {int a,b,c,d;}aux2,d[10];
int P,S,a,b,j,c,dd,x[20],y[20],ok,i,aux;
int main(){
FILE *f=fopen("reuniune.in","r");
fscanf(f,"%d %d %d %d",&d[1].b,&d[1].a,&d[1].d,&d[1].c);
fscanf(f,"%d %d %d %d",&d[2].b,&d[2].a,&d[2].d,&d[2].c);
fscanf(f,"%d %d %d %d",&d[3].b,&d[3].a,&d[3].d,&d[3].c);
x[1]=d[1].b;
x[2]=d[1].d;
x[3]=d[2].b;
x[4]=d[2].d;
x[5]=d[3].b;
x[6]=d[3].d;
y[1]=d[1].a;
y[2]=d[1].c;
y[3]=d[2].a;
y[4]=d[2].c;
y[5]=d[3].a;
y[6]=d[3].c;
fclose(f);
ok=1;
while(ok){
ok=0;
for(i=1;i<6;i++){
if(x[i]>x[i+1]){
aux=x[i];
x[i]=x[i+1];
x[i+1]=aux;
ok=1;
}
}
}
ok=1;
while(ok){
ok=0;
for(i=1;i<3;i++){
if(d[i].a>d[i+1].a){
aux2=d[i];
d[i]=d[i+1];
d[i+1]=aux2;
ok=1;
}
}
}
a=x[1];
for(i=2;i<=6;i++){
b=x[i];
c=dd=-inf;
ok=0;
for(j=1;j<=3;j++){
if(d[j].b<=a&&d[j].d>=b){
if(c==-inf){
c=d[j].a;
dd=d[j].c;
}
else{
if(d[j].a<=dd){
if(d[j].c>dd){
dd=d[j].c;
ok=0;
}
}
if(d[j].a>dd){
S+=(b-a)*(dd-c);
P+=2*(b-a);
c=d[j].a;
dd=d[j].c;
ok=1;
}
}
}
}
if(!ok){
S+=(b-a)*(dd-c);
P+=2*(b-a);
c=d[j].a;
dd=d[j].c;
}
a=b;
}
ok=1;
while(ok){
ok=0;
for(i=1;i<6;i++){
if(y[i]>y[i+1]){
aux=y[i];
y[i]=y[i+1];
y[i+1]=aux;
ok=1;
}
}
}
ok=1;
while(ok){
ok=0;
for(i=1;i<3;i++){
if(d[i].b>d[i+1].b){
aux2=d[i];
d[i]=d[i+1];
d[i+1]=aux2;
ok=1;
}
}
}
a=y[1];
for(i=2;i<=6;i++){
b=y[i];
c=dd=-inf;
ok=0;
for(j=1;j<=3;j++){
if(d[j].a<=a&&d[j].c>=b){
if(c==-inf){
c=d[j].b;
dd=d[j].d;
}
else{
if(d[j].b<=dd){
if(d[j].d>dd){
dd=d[j].d;
ok=0;
}
}
if(d[j].b>dd){
P+=2*(b-a);
c=d[j].a;
dd=d[j].c;
ok=1;
}
}
}
}
if(!ok){
P+=2*(b-a);
c=d[j].a;
dd=d[j].c;
}
a=b;
}
FILE *g=fopen("reuniune.out","w");
fprintf(g,"%d %d",S,P);
fclose(g);
return 0;
}