Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- List<P> ll = new List<P>();
- ll.Add(new P() { user = "1@mail.ru", a = 3, b = 9 });
- ll.Add(new P() { user = "2@mail.ru", a = 1, b = 10 });
- ll.Add(new P() { user = "3@mail.ru", a = 10, b = 11 });
- int price = 10;
- int amount = 5;
- int balance = price * amount;
- while (amount != 0)
- {
- List<P> l = ll.FindAll(x => ll.Sum(a => x.a) <= amount && x.b <= price);
- l = l.OrderByDescending(x => x.b).ToList();
- foreach (P p in l)
- {
- if (p.b <= price)
- {
- Console.WriteLine(p.user);
- if (p.a == amount) // Если у продавца есть столько же (при след интерациях) то скупаем все и выходим
- {
- Console.WriteLine("купили " + p.a + " штук по " + p.b + ". выходим + удаляем продавца..");
- amount = 0;
- ll.Remove(p);
- break;
- }
- else if (p.a > amount) // Если у продавца больше или есть столько же (при след интерациях) то скупаем все и выходим
- {
- Console.WriteLine("купили " + p.a + " штук по " + p.b + ". следущий продавец:");
- p.a -= amount;
- amount -= p.a;
- Console.WriteLine("осталось купить " + amount);
- break;
- }
- else if (p.a < amount)
- {
- //ll[ll.FindIndex(x => x.user == "dsfsdf")].a -= p.a;
- Console.WriteLine("купили " + p.a + " штук по " + p.b + ". удаляем + следущий продавец:");
- p.a -= amount;
- amount -= p.a;
- Console.WriteLine("осталось купить " + amount);
- ll.Remove(p);
- continue;
- }
- }
- else
- {
- goto exit;
- }
- }
- }
- exit:
- Environment.Exit(0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement