• Популяризация проекта по автоматизации скачивания сериалов с торрент-трекеров

    @apodavalov Автор вопроса
    Спасибо за ответ! Во Вашему вопросу: насколько я знаю в 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. Я пока не разбирался с этим.
  • Минимизация фактов выплат/перевозок?

    @apodavalov Автор вопроса
    Прошу прощения, я не полный тест Вам дал. Две транзакции последние у меня куда-то подевались. Попробуйте, пожалуйста, на обоих Ваших вариантах (тест ниже). Попытку #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
  • Минимизация фактов выплат/перевозок?

    @apodavalov Автор вопроса
    На 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 должен W.
  • Минимизация фактов выплат/перевозок?

    @apodavalov Автор вопроса
    Да, чуть не забыл. в equal_search небольшая ошибочка закралась — я ее исправил — там оба раза i используется. Вот тут:
        for (int i = 0; i < balance.keys().length() - 1; i++)
        {
            QString first_key = balance.keys().at(i);
            for (int j = i + 1; j < balance.keys().length(); j++)
            {
                QString second_key = balance.keys().at(i);
    
  • Минимизация фактов выплат/перевозок?

    @apodavalov Автор вопроса
    Доброе время суток!

    Скачал, переписал на C# (у меня на C# подготовлено все). Все текущие тесты проходит. Сделаю еще больших тестов — отпишусь. Похоже, что Ваша рекурсия не такая прожорливая =) Спасибо =)
  • Минимизация фактов выплат/перевозок?

    @apodavalov Автор вопроса
    По поводу первого абзаца: в моей транспортной сети нет ребер между поставщиками. а также нет ребер между потребителями. Есть только ребра между любой парой (поставщик, потребитель).

    К сожалению, я это тоже пробовал. Следующий пример (в скобкх уже указаны балансы): 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 вылпат.

    Спасибо за ответ!