Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int MaxCost()
- {
- int[,] tab = new int[FilesStream.MaxEnd, FilesStream.MaxEnd];
- var input = FilesStream.Reservations;
- for (int j = 0; j <= FilesStream.MaxEnd; j++)
- {
- counter++;
- if (input.ContainsKey(j))
- {
- var item = input[j];
- for (int i = 0; i < item.end - 1; i++)
- {
- counter++;
- tab[i, item.end - 1] = Math.Max(tab[i, item.end - 2], tab[i, item.start - 1] + item.price);
- tab[item.end - 1, i] = Math.Max(tab[item.end - 2, i], tab[item.start - 1, i] + item.price);
- }
- tab[item.end - 1, item.end - 1] = Math.Max(tab[item.end - 1, item.end - 2], tab[item.end - 2, item.end - 1]);
- }
- else if (j > 2)
- {
- for (int i = 0; i < j - 1; i++)
- {
- counter++;
- tab[i, j - 1] = tab[i, j - 2];
- tab[j - 1, i] = tab[j - 2, i];
- }
- tab[j - 1, j - 1] = Math.Max(tab[j - 1, j - 2], tab[j - 2, j - 1]);
- }
- }
- return tab[FilesStream.MaxEnd - 1, FilesStream.MaxEnd - 1];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement