#include <cstdio>
#include <vector>
#include <algorithm>
#include <iostream>
#include <map>
#include <cmath>
using namespace std;
double a,b,c;
double x1[1000],x2[1000],y3[1000],y2[1000];
double x[2000],y[2000];
char table[2000][2000]={0};
int n,i,xi1,xi2,yi1,yi2,j,k;
double answer=0.0;
int main(){
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%lf %lf %lf",&a,&b,&c);
x1[i]=a-c/2;
y3[i]=b-c/2;
x2[i]=a+c/2;
y2[i]=b+c/2;
x[2*i]=x1[i];
x[2*i+1]=x2[i];
y[2*i]=y3[i];
y[2*i+1]=y2[i];
}
sort(x,x+2*n);
sort(y,y+2*n);
for (i=0;i<n;i++)
{
xi1=lower_bound(x,x+2*n,x1[i])-x;
xi2=lower_bound(x,x+2*n,x2[i])-x;
yi1=lower_bound(y,y+2*n,y3[i])-y;
yi2=lower_bound(y,y+2*n,y2[i])-y;
for (j=xi1;j<xi2;j++)
for (k=yi1;k<yi2;k++)
table[j][k]=1;
}
for (j=0;j<2*n;j++)
for (k=0;k<2*n;k++)
if (table[j][k])
{
// printf("%.1lf %.1lf %.1lf %.1lf\n",x[j],y[k],x[j+1],y[k+1]);
answer+=(x[j+1]-x[j])*(y[k+1]-y[k]);
}
printf("%.3lf",answer);
return 0;
}
Бидний гаргасан амжилтууд (Team SMCS1)
12 лет назад
Комментариев нет:
Отправить комментарий