Pagini recente » Cod sursa (job #2060107) | Cod sursa (job #3031178) | Cod sursa (job #663701) | Cod sursa (job #2663177) | Cod sursa (job #931322)
Cod sursa(job #931322)
#include<stdio.h>
long double x0[4],y0[4],x1[4],y1[4],a[7],b[7],aux,s[7][7],aria,per;
int i,lx,ly,ok,j,k;
int main()
{
FILE *f,*g;
f=fopen("reuniune.in","r");
g=fopen("reuniune.out","w");
for(i=1;i<=3;i++)
{ fscanf(f,"%Lf%Lf%Lf%Lf",&x0[i],&y0[i],&x1[i],&y1[i]);
a[2*i-1]=x0[i];a[2*i]=x1[i];
b[2*i-1]=y0[i];b[2*i]=y1[i];
}
lx=6;ly=6;
ok=1;
while(ok)
{ ok=0;
for(i=1;i<lx;i++)
{ if(a[i]==a[i+1]){a[i+1]=a[lx];lx--;ok=1;}
else if(a[i]>a[i+1])
{aux=a[i];a[i]=a[i+1];a[i+1]=aux;ok=1;}
}
}
ok=1;
while(ok)
{ ok=0;
for(i=1;i<ly;i++)
{ if(b[i]==b[i+1]){b[i+1]=b[ly];ly--;ok=1;}
else if(b[i]>b[i+1])
{aux=b[i];b[i]=b[i+1];b[i+1]=aux;ok=1;}
}
}
for(i=1;i<lx;i++)
for(j=1;j<ly;j++)
for(k=1;k<=3;k++)
if(a[i]>=x0[k])
if(a[i+1]<=x1[k])
if(b[j]>=y0[k])
if(b[j+1]<=y1[k])
{s[i][j]=(a[i+1]-a[i])*(b[j+1]-b[j]);}
for(i=1;i<lx;i++)
for(j=1;j<ly;j++)
aria+=s[i][j];
for(i=0;i<=5;i++)
for(j=0;j<=5;j++)
{ if(s[i][j]!=0) { if(s[i][j+1]==0) per=per+(a[i+1]-a[i]);
if(s[i][j-1]==0) per=per+(a[i+1]-a[i]);
if(s[i+1][j]==0) per=per+(b[j+1]-b[j]);
if(s[i-1][j]==0) per=per+(b[j+1]-b[j]);}
}
fprintf(g,"%.0Lf %.0Lf\n",aria,per);
fcloseall();
return 0;
}