Cod sursa(job #981133)

Utilizator t.g.g.tt.g.g.t t.g.g.t Data 6 august 2013 14:17:17
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.17 kb
#include <fstream>

using namespace std;

typedef struct drept2
{
    long long x1,x2,y1,y2;
} drept;

drept a[8];
long long arie,perim;

void calc(int i,int j,int z);

int main ()
{
    ifstream in("reuniune.in");
    ofstream out("reuniune.out");
    in>>a[0].x1>>a[0].y1>>a[0].x2>>a[0].y2;
    in>>a[1].x1>>a[1].y1>>a[1].x2>>a[1].y2;
    in>>a[2].x1>>a[2].y1>>a[2].x2>>a[2].y2;
    calc(0,1,3);
    calc(0,2,4);
    calc(1,2,5);
    calc(3,2,6);
    arie=(a[0].x2-a[0].x1)*(a[0].y2-a[0].y1);
    arie=arie-(a[3].x2-a[3].x1)*(a[3].y2-a[3].y1);
    arie=arie+(a[1].x2-a[1].x1)*(a[1].y2-a[1].y1);
    arie=arie-(a[4].x2-a[4].x1)*(a[4].y2-a[4].y1);
    arie=arie+(a[2].x2-a[2].x1)*(a[2].y2-a[2].y1);
    arie=arie-(a[5].x2-a[5].x1)*(a[5].y2-a[5].y1);
    arie=arie+(a[6].x2-a[6].x1)*(a[6].y2-a[6].y1);
    out<<arie<<" ";
    perim=2*(a[0].x2-a[0].x1+a[0].y2-a[0].y1);
    perim=perim-2*(a[3].x2-a[3].x1+a[3].y2-a[3].y1);
    perim=perim+2*(a[1].x2-a[1].x1+a[1].y2-a[1].y1);
    perim=perim-2*(a[4].x2-a[4].x1+a[4].y2-a[4].y1);
    perim=perim+2*(a[2].x2-a[2].x1+a[2].y2-a[2].y1);
    perim=perim-2*(a[5].x2-a[5].x1+a[5].y2-a[5].y1);
    perim=perim+2*(a[6].x2-a[6].x1+a[6].y2-a[6].y1);
    out<<perim;
    in.close();
    out.close();

}

void calc (int i,int j,int z)
{
        if (a[i].x1<a[j].x1)
    {
        a[z].x1=a[j].x1;
        if (a[i].x2>a[j].x1)
        {
            if (a[i].x2<a[j].x2) {a[z].x2=a[i].x2;} else {a[z].x2=a[j].x2;}
        } else a[z].x2=a[j].x1;
    } else
    {
        a[z].x1=a[i].x1;
        if (a[j].x2<a[i].x1)
        {
            a[z].x2=a[i].x1;
        } else
        {
            if (a[j].x2<a[i].x2) {a[z].x2=a[j].x2;} else {a[z].x2=a[i].x2;}
        }
    }
        if (a[i].y1<a[j].y1)
    {
        a[z].y1=a[j].y1;
        if (a[i].y2>a[j].y1)
        {
            if (a[i].y2<a[j].y2) {a[z].y2=a[i].y2;} else {a[z].y2=a[j].y2;}
        } else a[z].y2=a[j].y1;
    } else
    {
        a[z].y1=a[i].y1;
        if (a[j].y2<a[i].y1)
        {
            a[z].y2=a[i].y1;
        } else
        {
            if (a[j].y2<a[i].y2) {a[z].y2=a[j].y2;} else {a[z].y2=a[i].y2;}
        }
    }
}