Pagini recente » Cod sursa (job #1815814) | Cod sursa (job #331335) | Cod sursa (job #2511345) | Cod sursa (job #2000724) | Cod sursa (job #803608)
Cod sursa(job #803608)
#include<fstream>
#include<algorithm>
using namespace std;
struct drept
{
long long x,y,z,t;
};
drept a[10];
long long i,ar,pe,p,q;
void sw(int k)
{
if (a[k].x>a[k].z)
swap(a[k].x,a[k].z);
if (a[k].y>a[k].t)
swap(a[k].y,a[k].t);
}
void proc(long long x,long long y,long long z,long long t)
{
long long a[5];
a[1]=x;a[2]=y;a[3]=z;a[4]=t;
sort(a+1,a+5);
p=a[2];q=a[3];
}
void inter(int x,int y,int z)
{
if ((a[x].t<a[y].y) || (a[y].t<a[x].y) || (a[x].z<a[y].x) || (a[y].z<a[x].x))
a[z].x=a[z].y=a[z].z=a[z].t=0;
else
{
proc(a[x].x,a[x].z,a[y].x,a[y].z);
a[z].x=p;a[z].z=q;
proc(a[x].y,a[x].t,a[y].y,a[y].t);
a[z].y=p;a[z].t=q;
sw(z);
}
}
long long aria(int k)
{
return (a[k].z-a[k].x)*(a[k].t-a[k].y);
}
long long per(int k)
{
return (a[k].z-a[k].x)+(a[k].t-a[k].y);
}
int main()
{
ifstream f("reuniune.in");
ofstream g("reuniune.out");
for (i=1;i<=3;i++)
{
f >> a[i].x >> a[i].y >> a[i].z >> a[i].t;
sw(i);
}
inter(1,2,4);
inter(1,3,5);
inter(2,3,6);
inter(4,5,0);
for (i=0;i<=3;i++)
{
ar+=aria(i);
pe+=per(i);
}
for (i=4;i<=6;i++)
{
ar-=aria(i);
pe-=per(i);
}
g << ar << ' ' << 2*pe;
return 0;
}