1. C# / Говнокод #19205

    −107

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    using System;
    
    namespace useless
    {
        static class СевероЗапад
        {
            static int sum(int[,] arr, int x0, int y0, int x1, int y1)
            {
                int sum = 0, x, y;
                for (x = x0; x <= x1; x++)
                    for (y = y0; y <= y1; y++)
                        sum += arr[x, y];
                return sum;
            }
            static void write(int[,] arr, int w = 0)
            {
                for (int x = 0; x < arr.GetLength(0); x++)
                {
                    for (int y = 0; y < arr.GetLength(1); y++)
                        Console.Write(arr[x, y].ToString().PadLeft(w));
                    Console.WriteLine();
                }
            }
            static void fill(int[,] arr, int x = 0, int y = 0)
            {
                int a, b,
                    n = arr.GetLength(0) - 1,
                    m = arr.GetLength(1) - 1;
                while (x < n && y < m)
                {
                    a = arr[x, m] - sum(arr, x, 0, x, y);
                    b = arr[n, y] - sum(arr, 0, y, x, y);
                    if (a < b)
                        arr[x++, y] = a;
                    else
                        arr[x, y++] = b;
                }
            }
            static void Main(string[] args)//только для теста
            {
                int[,] arr ={ 
                    {  0,  0,  0,  0, 15 },
                    {  0,  0,  0,  0, 5 },
                    {  0,  0,  0,  0, 5 },
                    { 10,  7,  5,  3, 25 }
                            };
                write(arr, 3);
                Console.WriteLine();
                fill(arr);
                write(arr, 3);
                Console.Read();
            }
        }
    }

    (c) Сергей Грошевой, Ростов-на-Дону
    Распределение методом северо-западного угла

    Запостил: glauberov, 19 Декабря 2015

    Комментарии (4) RSS

    • А что плохого в этом коде? Я бы всего лишь в write оптимизировал бы циклы и заменил PadLeft на нормальное форматирование.
      Ответить

    Добавить комментарий