Post Transition in C – Hacker Rank Solution | HackerRank Programming Solutions | HackerRank C Solutions

Hello Programmers/Coders, Today we are going to share solutions of Programming problems of HackerRank of Programming Language C . At Each Problem with Successful submission with all Test Cases Passed, you will get an score or marks. And after solving maximum problems, you will be getting stars. This will highlight you profile to the recruiters.

In this post, you will find the solution for Post Transition in C-HackerRank Problem. We are providing the correct and tested solutions of coding problems present on HackerRank. If you are not able to solve any problem, then you can take help from our Blog/website.

Use “Ctrl+F” To Find Any Questions Answer. & For Mobile User, You Just Need To Click On Three dots In Your Browser & You Will Get A “Find” Option There. Use These Option to Get Any Random Questions Answer.

C is one of the most widely used Programming Languages. it is basically used to build Operating System. C was developed by Dennis Ritchie in 1972. Below are some examples of C Programming which might you understanding the basics of C Programming.

Objectives

We live in a big country. This country has towns_count towns in it. Each town has some post offices in which packages are stored and transferred.
Post offices have different inner structure. Specifically, each of them has some limitations on the packages it can store – their weight should be between min_weight and max_weight inclusively, where min_weight and max_weight are fixed for each office.
Packages are stored in some order in the office queue. That means, that they are processed using this order when sending and receiving.

Sometimes two post offices, even in different towns, may organize the following transaction: the first one sends all its packages to the second one. The second one accepts the packages that satisfy the weight condition for the second office and rejects all other ones. These rejected packages return to the first office back and are stored in the same order they were stored before they were sent. The accepted packages move to the tail of the second office’s queue in the same order they were stored in the first office.
You should process several queries in your program. You’ll be provided with structures package, post_of fice and town. in order to complete this task, you should fill the following functions:
print_all_packages : given the town t, print all packages in this town. They should be printed as follows:

Town_name:
    0:
        id_0
        id_1
        ...
    1:
        id_2
        id_3
        ...
    ...

where 0, 1 etc are the numbers of post offices and id0,id1 … are the ids of packages from the 0th post office in the order of its queue, id2, id3 are from the 1st one etc. There should be one ‘\t’ symbol before post office numbers and two ‘\t’ symbols before the ids.
send_all_acceptable_packages given the towns source and target and post office indices source_of fice_index and target_of fice_index, manage the transaction described above between the post office # source_of fice_index in town source and the post office # target_office_index in town target.
town_with_most_packages – given all towns, find the one with the most number of packages in all post offices altogether. If there are several of them, find the first one from the collection town.

find_town – given all towns and a string name, find the town with the name name. It’s guaranteed that the town exists.


Input Format :

First line of the input contains a single integer town_count . town_count blocks follow, each describing a town. Every town block contains several lines. On the first line there is a string town_name – the name of the town. On the second line there is an integer of fices_count – the number of the offices in the town. of fices_count blocks follow then, each describing an office.
Every office block also contains several lines. On the first line there are three integers separated by single spaces: package_count (the number of packages in the office), min_weight and max_weight (described above) package_count. blocks follow, each describing a package.
Every package block contains exactly two lines. On the first line there is a string id which is an id of the package. On the second line there is an integer weight which is the weight of the package.
Then, there is a single integer queries on the line which is the number of queries. queries blocks follow, each describing a query.
Every query block contains several lines. On the first line there is an integer 12 or 3. If this integer is 1, on the second line there is a string town_name – the name of town for which all packages should be printed. If this integer is 2, on the second line there are string source_name, integer source_office_index, string target_name and target_office_index integer separated by single spaces. That means transactions between post office # source_office_index in the town source_name and post office # target_office_index in the town  target_name should be processed.
If the integer is 3, no lines follow and the town with the most number of packages should be found.

Constraints :

  • All integer are between 0 and 10
  • town_count > 0, of fice_count > 0.
  • All strings have length <= 5
  • All towns’ names have only uppercase english letters and are unique.
  • All packages’ ids have only lowercase english letters and are unique.
  • For each post office, min_weight <= max_weight.
  • All queries are valid, that means, towns with the given names always exist, post offices with the given indices always exist.

Output Format :

For queries of type 1, print all packages in the format provided in the problem statement. For queries of type 3, print “Town with the most number of packages is “town_name“ on a separate line.

Sample Input :

2
A
2
2 1 3
a 2
b 3
1 2 4
c 2
B
1
4 1 4
d 1
e 2
f 3
h 4
5
3
2 B 0 A 1
3
1 A
1 B

Sample Output :

Town with the most number of packages is B
Town with the most number of packages is A
A:
    0:
        a
        b
    1:
        c
        e
        f
        h
B:
    0:
        d

Explanation :

Before all queries, town B has 4 packages in total, A town has 3. But after transaction all packages from B’s 0th post office go to 1 the st post office of A, except package d because it’s too light.

Post Transition in C – Hacker Rank Solution
#include <stdio.h>
#include <stdlib.h>
#define MAX_STRING_LENGTH 6

struct package
{
   char* id;
   int weight;
};

typedef struct package package;

struct post_office
{
   int min_weight;
   int max_weight;
   package* packages;
   int packages_count;
};

typedef struct post_office post_office;

struct town
{
   char* name;
   post_office* offices;
   int offices_count;
};

typedef struct town town;


void print_all_packages(town t)
{
    printf("%s:\n", t.name);
    for (int i = 0; i < t.offices_count; i++)
    {
        printf("\t%d:\n", i);
        for (int j = 0; j < t.offices[i].packages_count; j++)
            printf("\t\t%s\n", t.offices[i].packages[j].id);
    }
}

void send_all_acceptable_packages(town* source, int source_office_index, town* target, int target_office_index)
{
    int n = 0;
    for (int i = 0; i < source->offices[source_office_index].packages_count; i++)
        if (source->offices[source_office_index].packages[i].weight >= target->offices[target_office_index].min_weight &&
            source->offices[source_office_index].packages[i].weight <= target->offices[target_office_index].max_weight)
            ++n;
    package* newPackages = malloc(sizeof(package)*(n + target->offices[target_office_index].packages_count));
    package* oldPackages = malloc(sizeof(package)*(source->offices[source_office_index].packages_count - n));
    for (int i = 0; i < target->offices[target_office_index].packages_count; i++)
        newPackages[i] = target->offices[target_office_index].packages[i];
    n = target->offices[target_office_index].packages_count;
    int m = 0;
    for (int i = 0; i < source->offices[source_office_index].packages_count; i++)
        if (source->offices[source_office_index].packages[i].weight >= target->offices[target_office_index].min_weight &&
            source->offices[source_office_index].packages[i].weight <= target->offices[target_office_index].max_weight)
        {
            newPackages[n] = source->offices[source_office_index].packages[i];
            ++n;
        }
        else
        {
            oldPackages[m] = source->offices[source_office_index].packages[i];
            ++m;
        }
    target->offices[target_office_index].packages_count = n;
    free(target->offices[target_office_index].packages);
    target->offices[target_office_index].packages = newPackages;
    source->offices[source_office_index].packages_count = m;
    free(source->offices[source_office_index].packages);
    source->offices[source_office_index].packages = oldPackages;
}

int number_of_packages(town t)
{
    int ans = 0;
    for (int i = 0; i < t.offices_count; i++)
        ans += t.offices[i].packages_count;
    return ans;
}

town town_with_most_packages(town* towns, int towns_count)
{
    int ans;
    int max_packages = -1;
    for (int i = 0; i < towns_count; i++)
        if (number_of_packages(towns[i]) > max_packages)
        {
            max_packages = number_of_packages(towns[i]);
            ans = i;
        }
    return towns[ans];
}

town* find_town(town* towns, int towns_count, char* name)
{
    for (int i = 0; i < towns_count; i++)
        if (!strcmp(towns[i].name, name))
            return &(towns[i]);
    return &towns[0];
}

int main()
{
   int towns_count;
   scanf("%d", &towns_count);
   town* towns = malloc(sizeof(town)*towns_count);
   for (int i = 0; i < towns_count; i++) {
      towns[i].name = malloc(sizeof(char) * MAX_STRING_LENGTH);
      scanf("%s", towns[i].name);
      scanf("%d", &towns[i].offices_count);
      towns[i].offices = malloc(sizeof(post_office)*towns[i].offices_count);
      for (int j = 0; j < towns[i].offices_count; j++) {
         scanf("%d%d%d", &towns[i].offices[j].packages_count, &towns[i].offices[j].min_weight, &towns[i].offices[j].max_weight);
         towns[i].offices[j].packages = malloc(sizeof(package)*towns[i].offices[j].packages_count);
         for (int k = 0; k < towns[i].offices[j].packages_count; k++) {
            towns[i].offices[j].packages[k].id = malloc(sizeof(char) * MAX_STRING_LENGTH);
            scanf("%s", towns[i].offices[j].packages[k].id);
            scanf("%d", &towns[i].offices[j].packages[k].weight);
         }
      }
   }
   int queries;
   scanf("%d", &queries);
   char town_name[MAX_STRING_LENGTH];
   while (queries--) {
      int type;
      scanf("%d", &type);
      switch (type) {
      case 1:
         scanf("%s", town_name);
         town* t = find_town(towns, towns_count, town_name);
         print_all_packages(*t);
         break;
      case 2:
         scanf("%s", town_name);
         town* source = find_town(towns, towns_count, town_name);
         int source_index;
         scanf("%d", &source_index);
         scanf("%s", town_name);
         town* target = find_town(towns, towns_count, town_name);
         int target_index;
         scanf("%d", &target_index);
         send_all_acceptable_packages(source, source_index, target, target_index);
         break;
      case 3:
         printf("Town with the most number of packages is %s\n", town_with_most_packages(towns, towns_count).name);
         break;
      }
   }
   return 0;
}

1,141 thoughts on “Post Transition in C – Hacker Rank Solution | HackerRank Programming Solutions | HackerRank C Solutions”

  1. Some genuinely wonderful blog posts on this web site, regards for contribution. “I finally know what distinguishes man from other beasts financial worries. – Journals” by Jules Renard.

    Reply
  2. It’s in point of fact a great and helpful piece of info. I am satisfied that you shared this useful info with us. Please keep us informed like this. Thank you for sharing.

    Reply
  3. I’d have to examine with you here. Which is not one thing I usually do! I take pleasure in reading a post that may make folks think. Additionally, thanks for permitting me to comment!

    Reply
  4. Woah! I’m really digging the template/theme of this website. It’s simple, yet effective. A lot of times it’s very hard to get that “perfect balance” between user friendliness and visual appeal. I must say you have done a superb job with this. In addition, the blog loads very fast for me on Internet explorer. Superb Blog!

    Reply
  5. Interesting blog! Is your theme custom made or did you download it from somewhere? A design like yours with a few simple adjustements would really make my blog jump out. Please let me know where you got your design. With thanks

    Reply
  6. It’s a shame you don’t have a donate button! I’d most certainly donate to this excellent blog! I suppose for now i’ll settle for book-marking and adding your RSS feed to my Google account. I look forward to fresh updates and will talk about this blog with my Facebook group. Talk soon!

    Reply
  7. I loved as much as you will receive carried out right here. The sketch is tasteful, your authored material stylish. nonetheless, you command get got an nervousness over that you wish be delivering the following. unwell unquestionably come more formerly again as exactly the same nearly a lot often inside case you shield this increase.

    Reply
  8. Hi , I do believe this is an excellent blog. I stumbled upon it on Yahoo , i will come back once again. Money and freedom is the best way to change, may you be rich and help other people.

    Reply
  9. Wonderful website. Lots of helpful info here. I am sending it to some friends ans additionally sharing in delicious. And certainly, thank you in your effort!

    Reply
  10. Thank you for the good writeup. It in fact was a amusement account it. Look advanced to more added agreeable from you! By the way, how could we communicate?

    Reply
  11. Great V I should definitely pronounce, impressed with your web site. I had no trouble navigating through all tabs and related information ended up being truly simple to do to access. I recently found what I hoped for before you know it at all. Quite unusual. Is likely to appreciate it for those who add forums or anything, site theme . a tones way for your client to communicate. Excellent task..

    Reply
  12. An interesting discussion is worth comment. I think that you should write more on this topic, it might not be a taboo subject but generally people are not enough to speak on such topics. To the next. Cheers

    Reply
  13. Good post. I study something more difficult on totally different blogs everyday. It is going to all the time be stimulating to read content material from other writers and apply just a little something from their store. I’d desire to use some with the content material on my weblog whether you don’t mind. Natually I’ll provide you with a hyperlink in your internet blog. Thanks for sharing.

    Reply
  14. Thank you, I have just been looking for information approximately this subject for a long time and yours is the best I have found out till now. But, what in regards to the bottom line? Are you certain in regards to the source?

    Reply
  15. Do you have a spam issue on this blog; I also am a blogger, and I was wanting to know your situation; many of us have created some nice methods and we are looking to swap solutions with others, please shoot me an email if interested.

    Reply
  16. An attention-grabbing discussion is worth comment. I feel that you must write extra on this topic, it won’t be a taboo subject however generally people are not enough to talk on such topics. To the next. Cheers

    Reply
  17. Hey, I think your website might be having browser compatibility issues. When I look at your blog in Firefox, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, amazing blog!

    Reply
  18. What i do not realize is in fact how you’re now not really a lot more well-appreciated than you may be right now. You are so intelligent. You know therefore significantly in relation to this topic, produced me personally consider it from numerous numerous angles. Its like men and women don’t seem to be interested unless it’s something to accomplish with Woman gaga! Your own stuffs nice. Always deal with it up!

    Reply
  19. Hi, i read your blog occasionally and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you prevent it, any plugin or anything you can suggest? I get so much lately it’s driving me mad so any assistance is very much appreciated.

    Reply
  20. Yesterday, while I was at work, my sister stole my iphone and tested to see if it can survive a twenty five foot drop, just so she can be a youtube sensation. My iPad is now broken and she has 83 views. I know this is entirely off topic but I had to share it with someone!

    Reply
  21. Good day! Do you know if they make any plugins to help with SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains. If you know of any please share. Thank you!

    Reply
  22. My brother suggested I might like this website. He was totally right. This post actually made my day. You cann’t imagine just how much time I had spent for this information! Thanks!

    Reply
  23. Good day I am so excited I found your blog page, I really found you by error, while I was browsing on Aol for something else, Regardless I am here now and would just like to say thank you for a remarkable post and a all round exciting blog (I also love the theme/design), I dont have time to go through it all at the minute but I have saved it and also included your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the excellent b.

    Reply
  24. An intriguing discussion is worth comment. I do believe that you ought to write more on this issue, it might not be a taboo subject but generally people do not discuss such subjects. To the next! Kind regards!!

    Reply
  25. Howdy would you mind stating which blog platform you’re working with? I’m looking to start my own blog in the near future but I’m having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I’m looking for something completely unique. P.S My apologies for getting off-topic but I had to ask!

    Reply
  26. Nice blog here! Additionally your site loads up very fast! What web host are you the usage of? Can I get your affiliate hyperlink on your host? I wish my web site loaded up as quickly as yours lol

    Reply
  27. This is very interesting, You are an excessively professional blogger. I have joined your feed and look forward to seeking more of your wonderful post. Also, I have shared your web site in my social networks

    Reply
  28. naturally like your website however you need to check the spelling on quite a few of your posts. Several of them are rife with spelling problems and I find it very bothersome to tell the truth however I will certainly come back again.

    Reply
  29. Hi there, I found your blog via Google at the same time as searching for a similar matter, your web site got here up, it seems good. I have bookmarked it in my google bookmarks.

    Reply
  30. We stumbled over here from a different website and thought I might as well check things out. I like what I see so now i’m following you. Look forward to exploring your web page for a second time.

    Reply
  31. Good day! This is my first visit to your blog! We are a collection of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a extraordinary job!

    Reply
  32. purple pharmacy mexico price list [url=http://mexicanpharmacy.guru/#]buying from online mexican pharmacy[/url] mexico drug stores pharmacies

    Reply
  33. Hi! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any
    recommendations?

    Reply
  34. Have you ever thought about creating an e-book or guest authoring on other websites? I have a blog based upon on the same subjects you discuss and would really like to have you share some stories/information. I know my visitors would value your work. If you are even remotely interested, feel free to send me an e-mail.

    Reply
  35. It’s a shame you don’t have a donate button! I’d most certainly donate to this brilliant blog! I suppose for now i’ll settle for book-marking and adding your RSS feed to my Google account. I look forward to brand new updates and will talk about this site with my Facebook group. Chat soon!

    Reply
  36. Oh my goodness! Awesome article dude! Thanks, However I am experiencing issues with your RSS. I don’t know why I am unable to join it. Is there anybody getting the same RSS problems? Anyone who knows the answer can you kindly respond? Thanx!!

    Reply
  37. Hi there! I know this is kinda off topic however , I’d figured I’d ask. Would you be interested in exchanging links or maybe guest writing a blog article or vice-versa? My site goes over a lot of the same subjects as yours and I believe we could greatly benefit from each other. If you might be interested feel free to send me an e-mail. I look forward to hearing from you! Terrific blog by the way!

    Reply
  38. A fascinating discussion is worth comment. I believe that you need to publish more about this issue, it might not be a taboo subject but generally folks don’t discuss such issues. To the next! Kind regards!!

    Reply
  39. Good day! This is my 1st comment here so I just wanted to give a quick shout out and tell you I truly enjoy reading through your blog posts. Can you suggest any other blogs/websites/forums that deal with the same subjects? Thanks a ton!

    Reply
  40. An intriguing discussion is worth comment. I do think that you should write more on this topic, it might not be a taboo subject but generally people don’t speak about such subjects. To the next! All the best!!

    Reply
  41. Have you ever thought about publishing an e-book or guest authoring on other sites? I have a blog based upon on the same information you discuss and would really like to have you share some stories/information. I know my subscribers would enjoy your work. If you are even remotely interested, feel free to send me an e mail.

    Reply
  42. Wow that was strange. I just wrote an incredibly long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m not writing all that over again. Anyway, just wanted to say fantastic blog!

    Reply
  43. Anna Berezina is a extremely talented and renowned artist, recognized for her unique and charming artworks that by no means fail to go away a lasting impression. Her paintings fantastically showcase mesmerizing landscapes and vibrant nature scenes, transporting viewers to enchanting worlds crammed with awe and wonder.

    What units [url=http://plusgestio.com/pag/berezina-a_11.html]Berezina A.[/url] aside is her distinctive attention to detail and her remarkable mastery of colour. Each stroke of her brush is deliberate and purposeful, creating depth and dimension that convey her work to life. Her meticulous strategy to capturing the essence of her subjects allows her to create actually breathtaking artistic endeavors.

    Anna finds inspiration in her travels and the brilliant factor about the natural world. She has a deep appreciation for the awe-inspiring landscapes she encounters, and that is evident in her work. Whether it is a serene seaside at sunset, an imposing mountain vary, or a peaceful forest filled with vibrant foliage, Anna has a remarkable ability to seize the essence and spirit of those locations.

    With a unique artistic style that combines parts of realism and impressionism, Anna’s work is a visible feast for the eyes. Her paintings are a harmonious blend of exact particulars and delicate, dreamlike brushstrokes. This fusion creates a charming visual expertise that transports viewers into a world of tranquility and wonder.

    Anna’s talent and creative vision have earned her recognition and acclaim within the artwork world. Her work has been exhibited in prestigious galleries around the globe, attracting the eye of art fanatics and collectors alike. Each of her items has a method of resonating with viewers on a deeply private stage, evoking feelings and sparking a sense of connection with the natural world.

    As Anna continues to create beautiful artworks, she leaves an indelible mark on the world of artwork. Her capacity to seize the sweetness and essence of nature is really exceptional, and her work serve as a testament to her artistic prowess and unwavering ardour for her craft. Anna Berezina is an artist whose work will continue to captivate and inspire for years to come back..

    Reply
  44. I am really loving the theme/design of your website.
    Do you ever run into any web browser compatibility
    problems? A number of my blog audience have complained about my site not working correctly in Explorer but looks great in Safari.
    Do you have any recommendations to help fix this problem?

    Reply
  45. Hi there! This article could not be written much better!Looking at this article reminds me of my previous roommate!He continually kept talking about this. I’ll send this article to him.Pretty sure he will have a good read.Many thanksffor sharing!

    Reply
  46. Хотите получить идеально ровный пол без лишних затрат? Обратитесь к профессионалам на сайте styazhka-pola24.ru! Мы предоставляем услуги по стяжке пола м2 по доступной стоимости, а также устройству стяжки пола под ключ в Москве и области.

    Reply
  47. Хотите получить идеально ровные стены без лишних затрат? Обратитесь к профессионалам на сайте mehanizirovannaya-shtukaturka-moscow.ru! Мы предоставляем услуги по машинной штукатурке стен по доступной стоимости, а также гарантируем устройство штукатурки по маякам стен.

    Reply
  48. This design is incredible! You obviously know how to keep a reader amused.
    Between your wit and your videos, I was almost moved to start
    my own blog (well, almost…HaHa!) Wonderful job. I really enjoyed what you had to say,
    and more than that, how you presented it. Too cool!

    Reply
  49. I loved as much as you will receive carried out right here. The sketch is tasteful, your authored subject matter stylish. nonetheless, you command get bought an impatience over that you wish be delivering the following. unwell unquestionably come further formerly again since exactly the same nearly a lot often inside case you shield this increase.

    Reply