**Problem**

Snow Howler is the librarian at the central library of the city of HuskyLand. He must handle requests which come in the following forms:

1 x y : Insert a book with * y* pages at the end of the

*shelf.*

**xth**2 x y : Print the number of pages in the

*book on the*

**yth***shelf.*

**xth**3 x : Print the number of books on the

*shelf.*

**xth**Snow Howler has got an assistant, Oshie, provided by the Department of Education. Although inexperienced, Oshie can handle all of the queries of types 2 and 3.

Help Snow Howler deal with all the queries of type 1.

Oshie has used two arrays:

int* total_number_of_books; /* * This stores the total number of books on each shelf. */int** total_number_of_pages; /* * This stores the total number of pages in each book of each shelf. * The rows represent the shelves and the columns represent the books. */

**Input Format :**

The first line contains an integer total_number_of_shelves, the number of shelves in the library. The second line contains an integer total_number_of_queries, the number of requests.

Each of the following total_number_of_queries lines contains a request in one of the three specified formats.

**Constraints :**

- 1<= total_number_of_shelves <= 10^5
- 1<= total_number_of_queries <= 10^5
- For each query of the second type, it is guaranteed that a book is present on the xth shelf at yth index.
- 0 <= x < total_number_of_shelves
- Both the shelves and the books are numbered starting from 0.
- Maximum number of books per shelf <= 1100

**Output Format :**

Write the logic for the requests of type 1. The logic for requests of types 2 and 3 are provided.

### Sample Input 0 :

5510151020127822030

### Sample Output 0 :

782

### Explanation 0 :

There are 5 shelves and 5 requests, or queries.

– 1 Place a 15 page book at the end of shelf 0.

– 2 Place a 20 page book at the end of shelf 0.

– 3 Place a 78 page book at the end of shelf 2.

– 4 The number of pages in the 0th book on the 2th shelf is 78.

– 5 The number of books on the 0th shelf is 2.

### Dynamic Array in C – Hacker Rank Solution

#include <stdio.h> #include <stdlib.h> /* * This stores the total number of books in each shelf. */ int* total_number_of_books; /* * This stores the total number of pages in each book of each shelf. * The rows represent the shelves and the columns represent the books. */ int** total_number_of_pages; int main() { int total_number_of_shelves; scanf("%d", &total_number_of_shelves); total_number_of_books = calloc(total_number_of_shelves, sizeof(int)); int total_number_of_queries; scanf("%d", &total_number_of_queries); total_number_of_pages = malloc(total_number_of_shelves * sizeof(int *)); for (int i = 0; i < total_number_of_shelves; i++) { total_number_of_pages[i] = calloc(1100, sizeof(int)); } while (total_number_of_queries--) { int type_of_query; scanf("%d", &type_of_query); if (type_of_query == 1) { /* * Process the query of first type here. */ int shelf, pages; scanf("%d %d", &shelf, &pages); total_number_of_books[shelf]++; int *book = total_number_of_pages[shelf]; while (*book != 0) book++; *book = pages; } else if (type_of_query == 2) { int x, y; scanf("%d %d", &x, &y); printf("%d\n", *(*(total_number_of_pages + x) + y)); } else { int x; scanf("%d", &x); printf("%d\n", *(total_number_of_books + x)); } } if (total_number_of_books) { free(total_number_of_books); } for (int i = 0; i < total_number_of_shelves; i++) { if (*(total_number_of_pages + i)) { free(*(total_number_of_pages + i)); } } if (total_number_of_pages) { free(total_number_of_pages); } return 0; }

**Disclaimer: **The above Problem **(Dynamic Array in C )** is generated by **Hackerrank** but the Solution is Provided by **Chase2Learn**. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the following contact form thank you.