Cod sursa(job #911845)

Utilizator stefania23ciocoiu stefania stefania23 Data 11 martie 2013 21:41:06
Problema Reuniune Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
int main(){
  long long a0[3], a1[3], b0[3], b1[3],i,j;
  
  for(i=0;i<3;i++)
    f>>a0[i]>>b0[i]>>a1[i]>>b1[i];
  long long Aria=0, Perimetru=0;
  for(i=0;i<3;i++){
    Aria+=((a1[i]-a0[i])*(b1[i]-b0[i]));
    Perimetru+=(2*(a1[i]-a0[i])+2*(b1[i]-b0[i]));
  }
  long long as,bij,ad,bis;
  for(i=0;i<2;i++)
    for(j=i+1;j<3;j++){
      as=max(a0[i],a0[j]);
      ad=min(a1[i],a1[j]);
      bij=max(b0[i],b0[j]);
      bis=min(b1[i],b1[j]);
      if(as<=ad&&bij<=bis){
        Aria-=((ad-as)*(bis-bij));
        Perimetru-=(2*(ad-as)+2*(bis-bij));
      }
    }
  as=max(a0[0],a0[1]);
  as=max(as,a0[2]);
  ad=min(a1[0],a1[1]);
  ad=min(ad,a1[2]);
  bij=max(b0[0],b0[1]);
  bij=max(bij,b0[2]);
  bis=min(b1[0],b1[1]);
  bis=min(bis,b1[2]);
  if(as<=ad&&bij<=bis){
        Aria+=((ad-as)*(bis-bij));
        Perimetru+=(2*(ad-as)+2*(bis-bij));
      }
  
  g<<Aria<<' '<<Perimetru<<'\n';
  f.close();
  g.close();
  return 0;
}