Cod sursa(job #1717140)

Utilizator DjokValeriu Motroi Djok Data 14 iunie 2016 13:39:57
Problema Reuniune Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<bits/stdc++.h>
using namespace std;

typedef struct lol {
    int x,y,q,w;
}troll;

int i;
troll ar[3];

long long a(const troll &now) { return (0LL+now.q-now.x)*(now.w-now.y); }

long long p(const troll &now) { return 2LL*(now.q-now.x)+2LL*(now.w-now.y); }

troll in(const troll &f,const troll &s) {
    troll rs;
    rs.x=max(f.x,s.x);
    rs.y=max(f.y,s.y);
    rs.q=min(f.q,s.q);
    rs.w=min(f.w,s.w);

    if(rs.x>=rs.q || rs.y>=rs.w) rs={0,0,0,0};

    return rs;
}

int main()
{
  ifstream cin("reuniune.in");
  ofstream cout("reuniune.out");

  ios_base::sync_with_stdio(0);

  for(i=0;i<3;++i) cin>>ar[i].x>>ar[i].y>>ar[i].q>>ar[i].w;

  cout<<a(ar[0])+a(ar[1])+a(ar[2])-a(in(ar[0],ar[1]))-a(in(ar[1],ar[2]))-a(in(ar[2],ar[0]))+a(in(in(ar[0],ar[1]),ar[2]))<<' ';
  cout<<p(ar[0])+p(ar[1])+p(ar[2])-p(in(ar[0],ar[1]))-p(in(ar[1],ar[2]))-p(in(ar[2],ar[0]))+p(in(in(ar[0],ar[1]),ar[2]))<<'\n';

 return 0;
}