Advertisement
BanyRule

6

Jan 13th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. массив замени на [0..1000], зачем ты тратишь лишнюю память?
  2.  
  3. теперь про отдельные клетки. во первыхх определим её окрестность:
  4. 1) определим левую, правую, верхнию и нижнию границы: (a|b) +|- k
  5. 2) пройдёмся по границам и проверим, не выходят ли они за рамки массива, иначе присвоим им граничные значения (0|N) для вертикали и (0|M) для для горизонтали
  6. 3) теперь можем реализовать процедуру смена точки, тут я нашел несколько способов сократить время.
  7. 1.запомним, что у нас в ячейке
  8. 2.во вложенном цикле накапливаем счётчики star и dot, но только до половины.
  9. a)если на половине счётчик клеток, противоположных по "цвету" больше, то прерываем цикл
  10. б)если на половине счётчик клеток, тогоже "цвета" больше, то прерываем цикл
  11. в)если на половине счётчики равны, то продолжаем цикл до конца
  12. 3.изменяем или оставляем цвет точки исходя из полученных подсчётов. значения можно выводить сразу или заносить в отдельный массив, но они не должны менять входные параметры.
  13. а)противоположных больше - заменяем
  14. б)счетчики равны | своего цвета больше - оставляем как есть
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement