Nu aveti permisiuni pentru a descarca fisierul b.jpg
Cod sursa(job #729605)
Utilizator | Data | 29 martie 2012 19:14:46 | |
---|---|---|---|
Problema | Reuniune | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.64 kb |
#include<stdio.h>
FILE *f , *g ;
typedef long long LL;
typedef long L ;
L x1 , x2 , x3 , x4 , x5 , x6 , y1 , y2 , y3 , y4 , y5 , y6 ;
LL d1 , d2 , d3 , d4 , A , P;
void citire();
void solve();
void tipar();
LL arie(LL x1 , LL x2 , LL y1 , LL y2);
LL perim(LL x1 , LL x2 , LL y1 , LL y2);
LL min(LL a , LL b ){return a<b?a:b ;}
LL max(LL a , LL b){return a>b?a:b; }
void inter(LL x1 , LL x2 , LL y1, LL y2 , LL x3 , LL x4 , LL y3 , LL y4)
{
LL a , b , c , d;
a=max(x1,x3);
b=min(x2,x4);
c=max(y1,y3);
d=min(y2,y4);
if(b <= a || d <= c)
a=b=c=d=0;
d1=a,d2=b,d3=c,d4=d;
}
int main()
{
citire();
solve();
tipar();
return 0;
}
void citire()
{
f=fopen("reuniune.in" , "r" );
fscanf(f , "%ld%ld%ld%ld%ld%ld%ld%ld%ld%ld%ld%ld",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4,&x5,&y5,&x6,&y6 );
fclose(f);
}
void solve()
{
A+=arie(x1,x2,y1,y2)+arie(x3,x4,y3,y4)+arie(x5,x6,y5,y6);
P+=perim(x1,x2,y1,y2)+perim(x3,x4,y3,y4)+perim(x5,x6,y5,y6);
inter(x1,x2,y1,y2,x3,x4,y3,y4);
A-=arie(d1,d2,d3,d4);
P-=perim(d1,d2,d3,d4);
inter(x1,x2,y1,y2,x5,x6,y5,y6);
A-=arie(d1,d2,d3,d4);
P-=perim(d1,d2,d3,d4);
inter(x3,x4,y3,y4,x5,x6,y5,y6);
A-=arie(d1,d2,d3,d4);
P-=perim(d1,d2,d3,d4);
inter(x1,x2,y1,y2,d1,d2,d3,d4);
A+=arie(d1,d2,d3,d4);
P+=perim(d1,d2,d3,d4);
}
LL arie(LL x1 , LL x2 , LL y1 , LL y2)
{
return (x2-x1)*(y2-y1);
}
LL perim(LL x1 , LL x2 , LL y1 , LL y2)
{
return 2*((x2-x1)+(y2-y1));
}
void tipar()
{
g=fopen("reuniune.out" , "w" );
fprintf(g , "%lld " , A);
fprintf(g , "%lld" , P);
fclose(g);
}