Advertisement
kabanosiek

Untitled

Nov 18th, 2019
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.36 KB | None | 0 0
  1.  static int MaxCost()
  2.         {
  3.             int[,] tab = new int[FilesStream.MaxEnd, FilesStream.MaxEnd];
  4.             var input = FilesStream.Reservations;
  5.             for (int j = 0; j <= FilesStream.MaxEnd; j++)
  6.             {
  7.                 counter++;
  8.                 if (input.ContainsKey(j))
  9.                 {
  10.                     var item = input[j];
  11.                     for (int i = 0; i < item.end - 1; i++)
  12.                     {
  13.                         counter++;
  14.                         tab[i, item.end - 1] = Math.Max(tab[i, item.end - 2], tab[i, item.start - 1] + item.price);
  15.                         tab[item.end - 1, i] = Math.Max(tab[item.end - 2, i], tab[item.start - 1, i] + item.price);
  16.                     }
  17.                     tab[item.end - 1, item.end - 1] = Math.Max(tab[item.end - 1, item.end - 2], tab[item.end - 2, item.end - 1]);
  18.                 }
  19.                 else if (j > 2)
  20.                 {
  21.                     for (int i = 0; i < j - 1; i++)
  22.                     {
  23.                         counter++;
  24.                         tab[i, j - 1] = tab[i, j - 2];
  25.                         tab[j - 1, i] = tab[j - 2, i];
  26.                     }
  27.                     tab[j - 1, j - 1] = Math.Max(tab[j - 1, j - 2], tab[j - 2, j - 1]);
  28.                 }
  29.             }
  30.             return tab[FilesStream.MaxEnd - 1, FilesStream.MaxEnd - 1];
  31.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement