At PixelFlow, a mobile screen must display identical rectangular cards in a grid. Write a function that calculates the optimal layout for a given screen width, card minimum width, gap size, and number of cards.
The goal is to place as many columns as possible while ensuring each card is at least min_card_width pixels wide. Among all valid layouts, choose the one with the maximum number of columns. Then compute the resulting card width and the number of rows needed.
Implement a function that receives:
screen_width: integer total width of the screen in pixelsmin_card_width: integer minimum allowed width for each cardgap: integer horizontal gap between adjacent cardsitem_count: integer number of cards to placeReturn a list [columns, card_width, rows] where:
columns is the chosen number of columnscard_width is the integer width of each card after distributing available space evenlyrows is the number of rows required to place all cardsIf item_count is 0, return [0, 0, 0].
Example 1
Input: screen_width = 360, min_card_width = 100, gap = 10, item_count = 7
Output: [3, 113, 3]
Explanation: 3 columns fit because 3 * 100 + 2 * 10 = 320 <= 360. The final width is (360 - 20) // 3 = 113, and 7 items need 3 rows.
Example 2
Input: screen_width = 320, min_card_width = 150, gap = 20, item_count = 4
Output: [2, 150, 2]
Explanation: 2 columns fit exactly: 2 * 150 + 1 * 20 = 320.
0 <= item_count <= 10^51 <= min_card_width <= screen_width <= 10^90 <= gap <= 10^6item_count > 0.