Спасибо за ответ! Во Вашему вопросу: насколько я знаю в IIS можно запустить PHP - а следовательно не должно возникнуть проблем с запуском TorrentMonitor'а (я разумеется не пробовал). По поводу uTorrent: нужно написать адаптер к нему. Наследуемся от класса https://github.com/foxanthony/TorrentMonitor/blob/... и реализовываем абстрактные функции. Пример для Transmission тут: https://github.com/foxanthony/TorrentMonitor/blob/... Далее прописать новый адаптер в качестве клиента в конфигурационном файле. Пример здесь: https://github.com/foxanthony/TorrentMonitor/blob/... Остается вопрос есть ли какие-нибудь API для uTorrent. Я пока не разбирался с этим.
Прошу прощения, я не полный тест Вам дал. Две транзакции последние у меня куда-то подевались. Попробуйте, пожалуйста, на обоих Ваших вариантах (тест ниже). Попытку #2 пока не портировал на C#.
17
A D 8
A E 7
A F 6
B F 1
B G 5
C G 2
Z X 3
Z W 2
Z V 50
Z U 55
Y V 5
M Y 67
K L 65
L M 6
Y H 7
F G 9
D J 8
На 17 транзакциях уже работает довольно долго. У меня у самого был вариант тоже с перебором связанный, но он загибался на 10. Оставлю пока как наилучший вариант.
P.S. Где-то еще одна бага зарылась, хотя возможно, что это я виноват при переводе на C#.
Вот такой тест (кстати, тот самый):
17
A D 8
A E 7
A F 6
B F 1
B G 5
C G 2
Z X 3
Z W 2
Z V 50
Z U 55
Y V 5
M Y 67
K L 65
L M 6
Y H 7
Дает ответ:
13
F W 2
C W 0
M L 59
K V 55
Z U 53
Z Y 34
A Y 21
Z G 16
Z H 7
K E 7
M J 2
B J 6
K X 3
Скачал, переписал на C# (у меня на C# подготовлено все). Все текущие тесты проходит. Сделаю еще больших тестов — отпишусь. Похоже, что Ваша рекурсия не такая прожорливая =) Спасибо =)
По поводу первого абзаца: в моей транспортной сети нет ребер между поставщиками. а также нет ребер между потребителями. Есть только ребра между любой парой (поставщик, потребитель).
К сожалению, я это тоже пробовал. Следующий пример (в скобкх уже указаны балансы): A (-21), B(-6), C(-2), D(8), E(7), F(7), G(7) не даст верного ответа:
1) Одинаковых по модулю балансов нет;
2) A — должен больше всех
3) D — должны больше всех.
4) делаем платеж A -> D (8). D уходит. У A остается 13.
5) A должен больше всех. Из оставшихся потребителей — выбираем любого (7). Одинаковых по модулю балансов нет.
6) A -> E (7). У A осталось 6. E уходит.
7) A должен больше всех (или так же как B). Балансов одинаковых по модулю снова нет.
8) F должны больше всех. A -> F (6). A уходит. У F остается баланс 1.
9) B должен больше всех. G должны больше всех. Одинаковых по модулю балансов нет.
10) B->G (6). B уходит.
11) Оставшиеся у C (2) передаются F (1) и G (1). Итого: 6 выплат.
А верный ответ A -> E (7), A -> F(7), A -> G(7), B->D(6), C->D(2). 5 вылпат.
Спасибо за ответ!
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.