Проверить, можно ли разделить N элементов на K групп уникального размера.

Опубликовано: 20 Сентября, 2022

Даны целые числа N и K , задача состоит в том, чтобы проверить, можно ли разбить N чисел на K групп так, чтобы все K групп были разного размера и в каждой части было хотя бы одно число.

Примеры:

Input: N = 5, K = 2
Output: Yes
Explanation: 5 numbers can be divided into 2 parts of different size. The possible size of the groups can be (1, 4) and (2, 3).

Input: N = 3, K = 3
Output: No
Explanation: 3 numbers cannot be divide into 3 groups of unique size.

Подход: Задача может быть решена на основе следующего наблюдения.

To divide N numbers into K groups such that each group has at least one number and no two groups have same size:

  • There should be at least K numbers. If N < K, then division is not possible.
  • If N > K then the K groups will be at least of size 1, 2, 3, 4 . . . K . So N must be at least K*(K + 1)/2. 
    Therefore, the condition to be satisfied is N ≥ K*(K + 1)/2.

Ниже приведена реализация описанного выше подхода.

Временная сложность: O(1)
Вспомогательное пространство: O(1).