Cod sursa(job #2809816)

Utilizator suzanicaSuzanica Mihu suzanica Data 27 noiembrie 2021 17:41:29
Problema Reuniune Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
int x1[10],y1[10],x2[10],y2[10],i,j;
long long s,p,ar,per;
void reuniune(int i,int j,long long &x,long long &y)
{
      x=(min(x2[i],x2[j])-max(x1[i],x1[j]))*(min(y2[i],y2[j])-max(y1[i],y1[j]));
      y=(min(x2[i],x2[j])-max(x1[i],x1[j]))*2+(min(y2[i],y2[j])-max(y1[i],y1[j]))*2;
}
int main()
{
     for(i=1;i<=3;i++)
        f>>x1[i]>>y1[i]>>x2[i]>>y2[i];
    for(i=1;i<=3;i++)
    {
    s+=(x2[i]-x1[i])*(y2[i]-y1[i]);
    p+=(x2[i]-x1[i]+y2[i]-y1[i])*2;
    }
    ar=0;
    per=0;
    reuniune(1,2,ar,per);
    s-=ar;
    p-=per;
    ar=0;
    per=0;
    reuniune(3,2,ar,per);
    s-=ar;
    p-=per;
    ar=0;
    per=0;
    reuniune(1,3,ar,per);
    s-=ar;
    p-=per;
    x1[4]=max(x1[1],x1[2]);
    x2[4]=min(x2[1],x2[2]);
    y1[4]=max(y1[1],y1[2]);
    y2[4]=min(y2[1],y2[2]);
    x1[5]=max(x1[1],x1[3]);
    x2[5]=min(x2[1],x2[3]);
    y1[5]=max(y1[1],y1[3]);
    y2[5]=min(y2[1],y2[3]);
    ar=0;
    per=0;
    reuniune(4,5,ar,per);
    s+=ar;
    p+=per;
    g<<s<<" "<<p;
}