Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.80 KB | None | 0 0
  1.                 List<P> ll = new List<P>();
  2.                 ll.Add(new P() { user = "1@mail.ru", a = 3, b = 9 });
  3.                 ll.Add(new P() { user = "2@mail.ru", a = 1, b = 10 });
  4.                 ll.Add(new P() { user = "3@mail.ru", a = 10, b = 11 });
  5.  
  6.                 int price = 10;
  7.                 int amount = 5;
  8.                 int balance = price * amount;
  9.                 while (amount != 0)
  10.                 {
  11.                     List<P> l = ll.FindAll(x => ll.Sum(a => x.a) <= amount && x.b <= price);
  12.                     l = l.OrderByDescending(x => x.b).ToList();
  13.                     foreach (P p in l)
  14.                     {
  15.                         if (p.b <= price)
  16.                         {
  17.                             Console.WriteLine(p.user);
  18.                             if (p.a == amount) // Если у продавца есть столько же  (при след интерациях) то скупаем все и выходим
  19.                             {
  20.                                 Console.WriteLine("купили " + p.a + " штук по " + p.b + ". выходим + удаляем продавца..");
  21.                                 amount = 0;
  22.                                 ll.Remove(p);
  23.  
  24.                                 break;
  25.                             }
  26.                             else if (p.a > amount) // Если у продавца больше или есть столько же  (при след интерациях) то скупаем все и выходим
  27.                             {
  28.                                 Console.WriteLine("купили " + p.a + " штук по " + p.b + ". следущий продавец:");
  29.                                 p.a -= amount;
  30.                                 amount -= p.a;
  31.                                 Console.WriteLine("осталось купить " + amount);
  32.  
  33.                                 break;
  34.                             }
  35.                             else if (p.a < amount)
  36.                             {
  37.                                 //ll[ll.FindIndex(x => x.user == "dsfsdf")].a -= p.a;
  38.                                 Console.WriteLine("купили " + p.a + " штук по " + p.b + ". удаляем + следущий продавец:");
  39.                                 p.a -= amount;
  40.                                 amount -= p.a;
  41.                                 Console.WriteLine("осталось купить " + amount);
  42.                                 ll.Remove(p);
  43.  
  44.                                 continue;
  45.                             }
  46.                         }
  47.                         else
  48.                         {
  49.                             goto exit;
  50.                         }
  51.                     }
  52.                 }
  53.                 exit:
  54.                 Environment.Exit(0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement