#include <iostream>
using namespace std;
struct POINT{
int x, y;
};
istream& operator>>(istream& is, POINT& p)
{
is >> p.x >> p.y;
return is;
}
enum Color { WHITE, BLACK };
void Paint(int board[][100], POINT& coord);
int CheckCircumference(int board[][100]);
bool IsBlack(int col);
bool CheckLeft(int board[][100], int x, int y);
bool CheckRight(int board[][100], int x, int y);
bool CheckUp(int board[][100], int x, int y);
bool CheckDown(int board[][100], int x, int y);
int EdgeCnt(int board[][100], int x, int y);
int main(void) {
int board[100][100]{}; // 흰 도화지
int n; // 입력될 색종이의 개수
POINT coord; // 입력될 색종이의 좌하단 위치
cin >> n;
// 각 색종이의 좌표를 입력받아 칠한다.
for (int i = 0; i < n; ++i)
{
cin >> coord;
Paint(board, coord);
}
// 결과 출력
cout << CheckCircumference(board) << endl;
}
// 색종이 위치를 칠해주는 함수
void Paint(int board[][100], POINT& coord)
{
for (int y = coord.y; y < coord.y + 10; ++y)
{
for (int x = coord.x; x < coord.x + 10; ++x)
{
board[y][x] = Color::BLACK;
}
}
}
// 색종이의 둘레를 리턴하는 함수
int CheckCircumference(int board[][100])
{
int Circumference = 0;
for (int y = 0; y < 100; ++y)
{
for (int x = 0; x < 100; ++x)
{
if (!IsBlack(board[y][x])) continue;
Circumference += EdgeCnt(board, x, y);
}
}
return Circumference;
}
// 현재 위치가 색종이 영역인지 검사
bool IsBlack(int col)
{
return col == Color::BLACK;
}
// 왼쪽이 비었는지 확인
bool CheckLeft(int board[][100], int x, int y)
{
if (x == 0) return true;
if (board[y][x - 1] == Color::WHITE) return true;
return false;
}
// 오른쪽이 비었는지 확인
bool CheckRight(int board[][100], int x, int y)
{
if (x == 99) return true;
if (board[y][x + 1] == Color::WHITE) return true;
return false;
}
// 위쪽이 비었는지 확인
bool CheckUp(int board[][100], int x, int y)
{
if (y == 99) return true;
if (board[y + 1][x] == Color::WHITE) return true;
return false;
}
// 아래쪽이 비었는지 확인
bool CheckDown(int board[][100], int x, int y)
{
if (y == 0) return true;
if (board[y - 1][x] == Color::WHITE) return true;
return false;
}
// 현재 지점이 몇 개의 모서리에 속해있는지 파악하여 리턴한다.
int EdgeCnt(int board[][100], int x, int y)
{
int cnt = 0;
// 사방 중 하나라도 도화지면 혹은 범위를 벗어나는 경우 모서리다.
if (CheckLeft(board, x, y)) cnt++;
if (CheckRight(board, x, y)) cnt++;
if (CheckUp(board, x, y)) cnt++;
if (CheckDown(board, x, y)) cnt++;
return cnt;
}