Мислам дека сите програмери најмногу мразат кога ќе напишат некој код за некоја задача, и дури кога ќе завршат сфаќаат дека задачата не требало да се решава така, и треба да почнат сосема од почеток. Затоа те советувам секогаш да ја предвидиш сложеноста на твојот алгоритам. Ова ти што си го искуцал е чист brutefoce. На натпревариве алгоритамските задачи скоро никогаш не ги прават да бидат толку очигледни. Затоа првиот код што треба да го планираш да го куцаш, секогаш нека ти биде некоја добра оптимизација на bruteforce, или алгоритам што сигурно ќе биде точен и побрз од brutefoce. Нема потреба да вежбаш програмирање со куцање brutefoce на задачите.
Е сега, во врска со задачата, единственото решение што мене ми текнува е max flow со bfs - ford fulkerson, имплементација и објаснување можеш да најдеш на Topcoder. Мислам дека не постои друг начин да се реши ова.
Треба да куцаш нов код. Не може да очекуваш дека некоја оптимизација со додавање на два IF-a , ќе биде доволно задачава да пројде.