Pagini recente » Cod sursa (job #1291822) | Cod sursa (job #2837504) | Cod sursa (job #135530) | Cod sursa (job #2241770) | Cod sursa (job #839216)
Cod sursa(job #839216)
#include <fstream>
using namespace std;
long long x0[5], y0[5], x1[5], y1[5];
long long x, y, i, j, arietot, perimtot, a1, a0, b1, b0;
long long arie(long long i, long long j)
{
if (x1[j]>x1[i]) a1=x1[j];
else a1=x1[i];
if (x0[j]>x0[i]) a0=x0[j];
else a0=x0[i];
if (y1[j]>y1[i]) b1=y1[j];
else b1=y1[i];
if (y0[j]>y0[i]) b0=y0[j];
else b0=y0[i];
x=a1-a0;
y=b1-b0;
if (x<0) x=0;
if (y<0) y=0;
return x*y;
}
long long perim(long long i, long long j)
{
if (x1[j]>x1[i]) a1=x1[j];
else a1=x1[i];
if (x0[j]>x0[i]) a0=x0[j];
else a0=x0[i];
if (y1[j]>y1[i]) b1=y1[j];
else b1=y1[i];
if (y0[j]>y0[i]) b0=y0[j];
else b0=y0[i];
x=a1-a0;
y=b1-b0;
if (x<0) x=0;
if (y<0) y=0;
return 2*x+2*y;
}
int main()
{
long long x, y, ariecom, perimcom;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long minx=x1[1], maxx=x0[1], miny=y1[1], maxy=y0[1];
for (i=1; i<=3;i++)
f >> x0[i] >> y0[i] >> x1[i] >> y1[i];
for (i=1; i<=3; i++)
{
if (x1[i]<=minx) minx=x1[i];
if (x0[i]>=maxx) maxx=x0[i];
if (y1[i]<=miny) miny=y1[i];
if (y0[i]>=maxy) maxy=y0[i];
}
x=minx-maxx;
y=miny-maxy;
if(x<0) x=0;
if(y<0) y=0;
ariecom=x*y;
perimcom=2*(x+y);
arietot=ariecom+(x1[1]-x0[1])*(y1[1]-y0[1])+(x1[2]-x0[2])*(y1[2]-y0[2])+(x1[3]-x0[3])*(y1[3]-y0[3])-arie(1,2)-arie(2,3)-arie(3,1);
perimtot=perimcom+2*(x1[1]-x0[1])+2*(y1[1]-y0[1])+ 2*(x1[2]-x0[2])+2*(y1[2]-y0[2])+2*(x1[3]-x0[3])+2*(y1[3]-y0[3])-perim(1,2)-perim(2,3)-perim(3,1);
g <<arietot<< " "<<perimtot;
}