#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
   srand(time(0));
   const int SIZE = 10;

   int* counts[SIZE];

   // Dokonaj alokacji wierszy.
   for (int i = 0; i < SIZE; i++)
   {
      counts[i] = new int[i + 1];
      for (int j = 0; j <= i; j++)
      {
         counts[i][j] = 0;
      }
   }

   const int RUNS = 1000;

   // Symuluj 1000 kul.
   for (int run = 0; run < RUNS; run++)
   {
      // Dodaj kulę na górę.
      counts[0][0]++;
      // Niech kula spada w dół.
      int j = 0;
      for (int i = 1; i < SIZE; i++)
      {
         int r = rand() % 2;
         // Jeśli zmienna r jest parzysta, przemieść kulę prosto w dół, w przeciwnym razie na prawo.
         if (r == 1)
         {
            j++; 
         }
         counts[i][j]++;
      }
   }

   // Wyświetl całą tablicę counts.
   for (int i = 0; i < SIZE; i++)
   {
      for (int j = 0; j <= i; j++)
      {
         cout << setw(4) << counts[i][j];
      }
      cout << endl;
   }

   // Cofnij alokację wierszy.
   for (int i = 0; i < SIZE; i++)
   {
      delete[] counts[i];
   }

   return 0;
}

