Для того, чтобы решить данную задачу, необходимо воспользоваться формулой N = 2^i, где N - максимальное количество цветов в палитре, а i - глубина цвета.
2^8 < 312 < 2^9
Если мы будем использовать глубину цвета равную 8 битам, то максимальное допустимое количество цветов в палитре будет равняться 256 (так как 2^8 = 256), что не удовлетворяет условиям задачи.
Значит, нам необходимо использовать глубину цвета равную 9 битам, так как при этом значении максимальное допустимое количество цветов в палитре будет равняться 512(так как 2^9 = 512), а значит для кодирования 312 цветов памяти хватит с избытком.
ответ: 9
2 цвета можно закодировать 1 битом (0 для первого цвета и 1 для второго).
312 кб = 312*1024 байт = 319488 байт = 319488*8 бит (т.к. в 1 байте 8 бит) = 2555904 бит
итого имеем:
2555904=высота*768*1 → высота = 3328