Dynamic Array in C || Hacker Rank

 Question 15 || Hacker Rank

Dynamin Array in C || Hacker Rank 

Dynamic Array in C

Snow Howler is the administrator at the focal library of the city of HuskyLand. He should deal with demands which come in the accompanying structures:

 

1 x y : Supplement a book with pages toward the finish of the rack.

2 x y : Print the quantity of pages in the book on the rack.

3 x : Print the quantity of books on the rack.

 

Snow Howler has a partner, Oshie, given by the Division of Training. Albeit unpracticed, Oshie can deal with each of the inquiries of types 2 and 3.

 

Assist with snowing Howler manage every one of the questions of type 1.

Oshie has utilized two exhibits:

 

int* total_number_of_books;

/*

 * This stores the absolute number of books on every rack.

 */

 

int** total_number_of_pages;

/*

 * This stores the all out number of pages in each book of every rack.

 * The lines address the racks and the sections address the books.

 */

 

Input Arrangement

The primary line contains a whole number , the quantity of racks in the library.

 

The subsequent line contains a whole number , the quantity of solicitations.

Every one of the accompanying lines contains a solicitation in one of the three determined designs.

 

Requirements

 

For each inquiry of the subsequent sort, it is ensured that a book is available on the rack at file.

Both the racks and the books are numbered beginning from 0.

Greatest number of books per rack .

Yield Configuration

 

Compose the rationale for the solicitations of type 1. The rationale for solicitations of types 2 and 3 are given.

 

Test Info 0

5

5

1 0 15

1 0 20

1 2 78

2 2 0

3 0

 

Test Result 0

78

2

 

Clarification 0

There are retires and demands, or inquiries.

- 1 Spot a page book toward the finish of rack .

- 2 Spot a page book toward the finish of rack .

- 3 Spot a page book toward the finish of rack .

- 4 The quantity of pages in the book on the rack is 78.

- 5 The quantity of books on the rack is 2.



#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;
#include <stdio.h>
int main()
{
    int total_number_of_shelves;
    scanf("%d", &total_number_of_shelves);
    
    int total_number_of_queries;
    scanf("%d", &total_number_of_queries);
    
    total_number_of_books = (int *)malloc(sizeof(int)*total_number_of_shelves);
    total_number_of_pages = (int **)malloc(sizeof(int *)*total_number_of_shelves);
    for(int i = 0; i<total_number_of_shelves; i++){
        *(total_number_of_books + i) = 0;
    }
    while(total_number_of_queries--){
        int type_of_query;
        scanf("%d", &type_of_query);
        if(type_of_query == 1){
            int x, y;
            scanf("%d %d", &x, &y);
            int booksInShelf = *(total_number_of_books + x);
            *(total_number_of_pages + x) = (int*)realloc(*(total_number_of_pages+x),sizeof(int)*(booksInShelf+1));
            *(*(total_number_of_pages+x)+booksInShelf) = y;
            *(total_number_of_books + x) += 1;



        } 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;
}



Output:

Dynamic Array in C



Post a Comment

0 Comments