Problem:
Official House

You manage 4 buildings, each of which has 3 floors, each of which consists of 10 rooms. Write a program which reads a sequence of tenant/leaver notices, and reports the number of tenants for each room.

For each notice, you are given four integers b, f, r and v which represent that v persons entered to room r of fth floor at building b. If v is negative, it means that −v persons left.

Assume that initially no person lives in the building.

Input

In the first line, the number of notices n is given. In the following n lines, a set of four integers b, f, r and v which represents ith notice is given in a line.

Output

For each building, print the information of 1st, 2nd and 3rd floor in this order. For each floor information, print the number of tenants of 1st, 2nd, .. and 10th room in this order. Print a single space character before the number of tenants. Print "####################" (20 '#') between buildings.

Constraints

No incorrect building, floor and room numbers are given.

0 ≤ the number of tenants during the management ≤ 9

Sample Input

3
1 1 3 8
3 2 2 7
4 3 8 1

Sample Output

0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
####################
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
####################
0 0 0 0 0 0 0 0 0 0
0 7 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
####################
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1_6_c
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string s = "####################";
            string[] t;
            List<int> list0 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list1 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list2 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list3 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list4 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list5 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list6 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list7 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list8 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list9 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list10 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            List<int> list11 = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

            List<List<int>> lista = new List<List<int>>();//1棟目
            lista.Add(list0);
            lista.Add(list1);
            lista.Add(list2);

            List<List<int>> listb = new List<List<int>>();//2棟目
            listb.Add(list3);
            listb.Add(list4);
            listb.Add(list5);

            List<List<int>> listc = new List<List<int>>();//3棟目
            listc.Add(list6);
            listc.Add(list7);
            listc.Add(list8);

            List<List<int>> listd = new List<List<int>>();//1棟目
            listd.Add(list9);
            listd.Add(list10);
            listd.Add(list11);

            for (int i = 0; i < n; i++)
            {
                t = Console.ReadLine().Split(' ');

                int a = int.Parse(t[0]);//棟数
                int b = int.Parse(t[1]);//階数
                int c = int.Parse(t[2]);//部屋番号
                int d = int.Parse(t[3]);//増減人数
                int e = b - 1;
                int f = c - 1;

                if (a == 1)
                {
                    lista[e][f] = lista[e][f] + d;  
                }
                else if (a == 2)
                {
                    listb[e][f] = listb[e][f] + d;
                }
                else if (a == 3)
                {
                    listc[e][f] = listc[e][f] + d;
                }
                else
                {
                    listd[e][f] = listd[e][f] + d;
                }





            }

            for(int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(lista[0][i]);

            }
            Console.Write('\n');

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(lista[1][i]);

            }
            Console.Write('\n');


            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(lista[2][i]);

            }
            Console.Write('\n');

            Console.WriteLine(s);

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listb[0][i]);
            }
            Console.Write('\n');

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listb[1][i]);
            }
            Console.Write('\n');

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listb[2][i]);
            }
            Console.Write('\n');

            Console.WriteLine(s);

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listc[0][i]);
            }
            Console.Write('\n');

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listc[1][i]);
            }
            Console.Write('\n');

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listc[2][i]);
            }
            Console.Write('\n');

            Console.WriteLine(s);

            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listd[0][i]);
            }
            Console.Write('\n');
            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listd[1][i]);
            }
            Console.Write('\n');
            for (int i = 0; i < 10; i++)
            {
                Console.Write(" ");
                Console.Write(listd[2][i]);
            }
            Console.ReadKey();
            Console.Write('\n');
        }
        
    }
}