Go: package main

import (
        "fmt"
)

var paper [10][10]int

func main() {
        var x, y, s int
        for {
                _, err := fmt.Scanf("%d,%d,%d", &x, &y, &s)
                if err != nil {
                        break
                }

                fill(x, y, s)
        }
        var d, z int
        for i := 0; i < 10; i++ {
                for j := 0; j < 10; j++ {
                        if paper[i][j] == 0 {
                                z += 1
                        }
                        if paper[i][j] > d {
                                d += 1
                        }
                }
        }
        fmt.Printf("%d\n%d\n", z, d)
}

func fill(x int, y int, s int) {
        paper[x][y] += 1
        if x > 0 {
                paper[x-1][y] += 1
        }
        if x < 9 {
                paper[x+1][y] += 1
        }
        if y > 0 {
                paper[x][y-1] += 1
        }
        if y < 9 {
                paper[x][y+1] += 1
        }

        if s >= 2 {
                if x > 0 && y > 0 {
                        paper[x-1][y-1] += 1
                }
                if x > 0 && y < 9 {
                        paper[x-1][y+1] += 1
                }
                if x < 9 && y > 0 {
                        paper[x+1][y-1] += 1
                }
                if x < 9 && y < 9 {
                        paper[x+1][y+1] += 1
                }
        }

        if s > 2 {
                if x > 1 {
                        paper[x-2][y] += 1
                }
                if x < 8 {
                        paper[x+2][y] += 1
                }
                if y > 1 {
                        paper[x][y-2] += 1
                }
                if y < 8 {
                        paper[x][y+2] += 1
                }
        }
}

C++: #include<iostream>
#include<stdio.h>

int paper[10][10];
int vecx[] = { 0, 1, 0, -1 }, vecy[] = { -1, 0, 1, 0 };

int main()
{
	int x, y, size;
	
	while( scanf( "%d,%d,%d", &x, &y, &size ) != EOF ){
		switch( size ){
			case 1:
				paper[x][y]++;
				for( int i = 0; i < 4; i++ ){
					int nx = x + vecx[i], ny = y + vecy[i];
					
					if( nx >= 0 && nx < 10 && ny >= 0 && ny < 10 ){
						paper[nx][ny]++;
					}
				}
				break;
			case 2:
			        for( int i = -1; i <= 1; i++ ){
					for( int j = -1; j <= 1; j++ ){
						if( x + i >= 0 && x + i < 10 && y + j >= 0 && y + j < 10 ){
							paper[x+i][y+j]++;
						}
					}
				}
				
				break;
			case 3:
				for( int i = -1; i <= 1; i++ ){
					for( int j = -1; j <= 1; j++ ){
						if( x + i >= 0 && x + i < 10 && y + j >= 0 && y + j < 10 ){
							paper[x+i][y+j]++;
						}
					}
				}
				
				for( int i = 0; i < 4; i++ ){
					int nx = x + vecx[i] * 2, ny = y + vecy[i] * 2;
					
					if( nx >= 0 && nx < 10 && ny >= 0 && ny < 10 ){
						paper[nx][ny]++;
					}
				}
				break;
		}
	}
	
	int a = 0, b = 0;
	
	for( int i = 0; i < 10; i++ ){
		for( int j = 0; j < 10; j++ ){
			if( !paper[i][j] ){
				a++;
			}
			else{
			 	b = std::max( b, paper[i][j] );
			}
		}
	}
	
	std::cout << a << std::endl;
	std::cout << b << std::endl;

 	return 0;
}

C++: #include<iostream>
using namespace std;
int main(){
int x,y,s,xx[196]={0},i,j,m=0,d,w=0;
char c;
while(cin>>x){
cin>>c>>y>>c>>s;
xx[x*14+y+16]++;
xx[x*14+y+29]++;
xx[x*14+y+30]++;
xx[x*14+y+31]++;
xx[x*14+y+44]++;
if(s>=2){
xx[x*14+y+15]++;
xx[x*14+y+17]++;
xx[x*14+y+43]++;
xx[x*14+y+45]++;
}
if(s>=3){
xx[x*14+y+2]++;
xx[x*14+y+28]++;
xx[x*14+y+32]++;
xx[x*14+y+58]++;
}
}
for(i=2;i<12;i++)
for(j=2;j<12;j++){
d=xx[i*14+j];
if(d>m)m=d;
if(d==0)w++;
}
cout<<w<<endl;
cout<<m<<endl;
return 0;
}

C++: #include <iostream>
#include <string>
using namespace std;




int main()
{
	int area[14][14] = {0};
	int x,nx,ny,y,size;
	int count = 0;
	int max = 0;
	char ch1,ch2;
	while(cin >> x >>ch1>> y >>ch2>> size){
		nx=x+2;
		ny=y+2;
		switch (size){
		case 3:
			area[nx-2][ny]++;
			area[nx+2][ny]++;
			area[nx][ny-2]++;
			area[nx][ny+2]++;
		case 2:
			area[nx-1][ny-1]++;
			area[nx+1][ny-1]++;
			area[nx-1][ny+1]++;
			area[nx+1][ny+1]++;
		case 1:
			area[nx-1][ny]++;
			area[nx+1][ny]++;
			area[nx][ny-1]++;
			area[nx][ny+1]++;
		}
		area[nx][ny]++;
	}

	for (int i=2;i<12;i++){
		for (int j=2;j<12;j++){
			if (area[i][j]==0){
				count++;
			}
			if(max<area[i][j]){
				max=area[i][j];
			}
		}
	}
	
	cout << count <<endl;
	cout << max << endl;


	return 0;
}

C++: #include <iostream>
#include <algorithm>
 
using namespace std;
 
int main(void){
 
  int p[14][14] = {0};
  int x,y,size;
  char ten,tenten;
 back:;
  while( cin >> x >> ten >> y >> tenten >> size ){
    x += 2;
    y += 2;
    switch(size){
    case 3:
      p[x-2][y]++;
      p[x+2][y]++;
      p[x][y-2]++;
      p[x][y+2]++;
    case 2:
      p[x+1][y+1]++;
      p[x-1][y-1]++;
      p[x+1][y-1]++;
      p[x-1][y+1]++;
    case 1:
      p[x][y+1]++;
      p[x][y-1]++;
      p[x-1][y]++;
      p[x+1][y]++;
      p[x][y]++;
    }
  }
   
  int cnt = 0;
  int m = 0;
  for( int i = 2 ; i < 12 ; i++ ){
    for( int j = 2 ; j < 12 ; j++ ){
      if( p[i][j] == 0 ) cnt++;
      m = max( m , p[i][j] );
      //  cout << " " << p[i][j] << " ";
    }
    //cout << endl;
  }
  cout << cnt << endl << m << endl;
  return 0;
}

C++: #include<stdio.h>
#include<string.h>
#include<iostream>

using namespace std;

void big(int a[10][10],int x,int y);
void mid(int a[10][10],int x,int y);
void sma(int a[10][10],int x,int y);

int main(){
	int a[10][10]={0};
	int s,x,y;
	char c;
	while(cin>>x>>c>>y>>c>>s){
		if(s==1){
			sma(a,x,y);
		}
		if(s==2){
			mid(a,x,y);
		}
		if(s==3){
			big(a,x,y);
		}
		for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
//		cout<<a[i][j];
		}
//		cout<<endl;
	}
//	cout<<endl<<x<<y<<s<<endl;
//	cout<<endl;
	}
	int max=0;
	int cnt=0;
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			if(a[i][j]==0)cnt++;
			if(a[i][j]>max)max=a[i][j];
		}
	}
	cout<<cnt<<endl;
	cout<<max<<endl;
	
}


void big(int a[10][10],int x,int y){
	mid(a,x,y);
	a[x+2][y]++;
	a[x-2][y]++;
	a[x][y+2]++;
	a[x][y-2]++;
}
void mid(int a[10][10],int x,int y){
	sma(a,x,y);
	a[x+1][y+1]++;
	a[x+1][y-1]++;
	a[x-1][y+1]++;
	a[x-1][y-1]++;
}
void sma(int a[10][10],int x,int y){
	a[x][y]++;
	a[x+1][y]++;
	a[x-1][y]++;
	a[x][y+1]++;
	a[x][y-1]++;
}