Mai intai trebuie sa te autentifici.
Cod sursa(job #206856)
Utilizator | Data | 10 septembrie 2008 10:28:29 | |
---|---|---|---|
Problema | Reuniune | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.94 kb |
#include<fstream>
using namespace std;
int main(){
int x0[3], x1[3], y0[3], y1[3],i,j;
ifstream f("reuniune.in");
for(i=0;i<3;i++)
f>>x0[i]>>y0[i]>>x1[i]>>y1[i];
f.close();
int A=0, P=0;
for(i=0;i<3;i++){
A+=((x1[i]-x0[i])*(y1[i]-y0[i]));
P+=(2*(x1[i]-x0[i])+2*(y1[i]-y0[i]));
}
int xs,yj,xd,ys;
for(i=0;i<2;i++)
for(j=i+1;j<3;j++){
xs=max(x0[i],x0[j]);
xd=min(x1[i],x1[j]);
yj=max(y0[i],y0[j]);
ys=min(y1[i],y1[j]);
if(xs<xd&&yj<ys){
A-=((xd-xs)*(ys-yj));
P-=(2*(xd-xs)+2*(ys-yj));
}
}
xs=max(x0[0],x0[1]);
xs=max(xs,x0[2]);
xd=min(x1[0],x1[1]);
xd=min(xd,x1[2]);
yj=max(y0[0],y0[1]);
yj=max(yj,y0[2]);
ys=min(y1[0],y1[1]);
ys=min(ys,y1[2]);
if(xs<xd&&yj<ys){
A+=((xd-xs)*(ys-yj));
P+=(2*(xd-xs)+2*(ys-yj));
}
ofstream g("reuniune.out");
g<<A<<' '<<P<<'\n';
g.close();
return 0;
}