рони, "но зачем"©
Единственное что реально стоит соптимизировать:
while(i--) if(result >= exclude[i]) result++;
->
while(result >= exclude[--i]) result++;
, но тогда нужда в проверках входных данных возрастёт, ибо тут косяк приведёт уже не к неверным значениям, а к вечному циклу.)
Впрочем на разумных цифрах это вообще всё фигня в плане скорости выполнения, и думать тут не о чем, можно юзать любую версию. Но твои хаки с приведением булева значения к числу - явно не то что стоит использовать.)