Дана задача сортировки шаров по контейнерам. У нас есть n
контейнеров и n
различных цветов шаров, причем шары распределены по контейнерам случайным образом. Допускается одна операция: обменять два шара в разных контейнерах. Необходимо выяснить, можно ли с помощью этой операции рассортировать шары так, чтобы в каждом контейнере лежали только шары одного цвета и каждый цвет присутствовал только в одном контейнере.
- Подсчет суммарного количества шаров каждого цвета и суммарного количества шаров в каждом контейнере:
- Создаем два массива
colorSums
иcontainerSums
размеромn
, гдеcolorSums[i]
хранит общее количество шаровi
-го цвета во всех контейнерах, аcontainerSums[i]
хранит общее количество шаров во всех контейнерахi
.
- Создаем два массива
- Сравнение массивов:
- Если отсортированные массивы
colorSums
иcontainerSums
совпадают, то можно рассортировать шары, иначе нельзя.
- Если отсортированные массивы
go run main.go
go test -v