Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- массив замени на [0..1000], зачем ты тратишь лишнюю память?
- теперь про отдельные клетки. во первыхх определим её окрестность:
- 1) определим левую, правую, верхнию и нижнию границы: (a|b) +|- k
- 2) пройдёмся по границам и проверим, не выходят ли они за рамки массива, иначе присвоим им граничные значения (0|N) для вертикали и (0|M) для для горизонтали
- 3) теперь можем реализовать процедуру смена точки, тут я нашел несколько способов сократить время.
- 1.запомним, что у нас в ячейке
- 2.во вложенном цикле накапливаем счётчики star и dot, но только до половины.
- a)если на половине счётчик клеток, противоположных по "цвету" больше, то прерываем цикл
- б)если на половине счётчик клеток, тогоже "цвета" больше, то прерываем цикл
- в)если на половине счётчики равны, то продолжаем цикл до конца
- 3.изменяем или оставляем цвет точки исходя из полученных подсчётов. значения можно выводить сразу или заносить в отдельный массив, но они не должны менять входные параметры.
- а)противоположных больше - заменяем
- б)счетчики равны | своего цвета больше - оставляем как есть
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement