Создание алгоритма оптимизации кода
Задан некий прямоугольник (квадрат - частный случай) со сторонами n и m. Левая верхняя точка имеет координаты х=0, у=0. Нижняя правая точка прямоугольника имеет координаты х=n, y=m. Требуется заполнить прямоугольник точками в строгой последовательности, начиная от точки х=0,у=0 к точкам x=n, y=m. Последовательность такая:
например, для прямоугольника со сторонами n=7, m=4 (8x5=40 точек):
01. x=0 y=0
02. x=1 y=0
03. x=0 y=1
04. x=2 y=0
05. x=1 y=1
06. x=0 y=2
07. x=3 y=0
08. x=2 y=1
09. x=1 y=2
10. x=0 y=3
11. x=4 y=0
12. x=3 y=1
13. x=2 y=2
14. x=1 y=3
15. x=0 y=4
16. x=5 y=0
17. x=4 y=1
18. x=3 y=2
19. x=2 y=3
20. x=1 y=4
21. x=6 y=0
22. x=5 y=1
23. x=4 y=2
24. x=3 y=3
25. x=2 y=4
26. x=7 y=0
27. x=6 y=1
28. x=5 y=2
29. x=4 y=3
30. x=3 y=4
31. x=7 y=1
32. x=6 y=2
33. x=5 y=3
34. x=4 y=4
35. x=7 y=2
36. x=6 y=3
37. x=5 y=4
38. x=7 y=3
39. x=6 y=4
40. x=7 y=4
Требуется разработать алгоритм оптимизации кода, чтобы он имел как можно меньше строк. В данном примере приведен примитивный случай, когда стороны прямоугольника имеют небольшие значения. Значения на самом деле могут быть очень большими, например, n=3000, m=2000. Ширина прямоугольника может быть меньше высоты. Максимальный размер прямоугольника 32767х32748 пикселей.
|