Arrangement

Question

Solution

Idea

This problem mainly tests the ability to find pattern. The pattern I have found is below:

  1. The difference between the teams in each room is exactly 1.

  2. The number of rooms that has exactly one more team is m % n.

  3. The base number of team in the room is m / n. Then the other choice is m / n + 1 exactly.

Code

https://github.com/mendax1234/Coding-Problems/blob/main/kattis/upprodun/upprodun.c
#include <stdio.h>

#define STAR '*'

void print_row(long n)
{
  for (long i = 0; i < n; i += 1)
  {
    putchar(STAR);
  }
  putchar('\n');
}

int main()
{
  long n, m;

  scanf("%ld", &n);
  scanf("\n%ld",&m);

  long num_room_more = m % n;
  long base_num_per_room = m / n;
  for (long i = 0; i < num_room_more; i += 1)
  {
    print_row(base_num_per_room + 1);
  }
  for (long i = 0; i < n - num_room_more; i += 1)
  {
    print_row(base_num_per_room);
  }
}

Last updated