100202B
#include<iostream>
#include<Set>
#include<cstdio>
#define mp make_pair
using namespace std;
typedef pair<int,int> PII;
int n,x,y,k;
int board[110][110];
set<PII>s1;
set<PII>s2;
int abs(int x)
{
if(x<0)
return -x;
return x;
}
void check(int x,int y)
{
PII v=mp(x,y);
if(s1.count(v)||s2.count(v))//这个点是黑的或者这个点用过了
return;
if(!s1.count(PII(x-1,y))&&!s1.count(PII(x-1,y-1))&&!s1.count(PII(x,y-1)))
return;
if(!s1.count(PII(x-1,y))&&!s1.count(PII(x-1,y+1))&&!s1.count(PII(x,y+1)))
return;
if(!s1.count(PII(x,y+1))&&!s1.count(PII(x+1,y+1))&&!s1.count(PII(x+1,y)))
return;
if(!s1.count(PII(x+1,y))&&!s1.count(PII(x+1,y-1))&&!s1.count(PII(x,y-1)))
return;
// board[x][y]=1;
s2.insert(v);
}
int main()
{
freopen("control.in","r",stdin);
freopen("control.out","w",stdout);
cin>>n;
while(n--)
{
cin>>x>>y>>k;
for(int i=x-k-1;i<=x+k+1;i++)
for(int j=y-k-1;j<=y+k+1;j++)
if((i!=x&&j!=y&&abs(i-x)+abs(j-y)<=k+2)||(abs(i-x)+abs(j-y)<=k+1))
{
// board[i][j]=1;
s1.insert(make_pair(i,j));
}
}
for(set<PII>::iterator it=s1.begin();it!=s1.end();it++)
{
for(int i=it->first-1;i<=it->first+1;i++)
for(int j=it->second-1;j<=it->second+1;j++)
check(i,j);
}
/* for(int i=x-k-1;i<=x+k+1;i++)
{
for(int j=y-k-1;j<=y+k+1;j++)
cout<<board[i][j];
cout<<endl;
}*/
cout<<s1.size()+s2.size()<<endl;
fclose(stdin);
fclose(stdout);
return 0;
}