int main(void) { while (moreinput()) { parse(); optimize(); addable(); generate(); peephole(); writeout(); } return 0; }
int aggregateReactors(Reactor *reactors, int n) { for (int i = 0; i < n - 1; i++){ if (addable(&reactors[i], &reactors[i+1])){ add(&reactors[i], &reactors[i+1]); for(int j = i+1; j < n-1; j++){ reactors[j] = reactors[j+1]; } n = n - 1; n = aggregateReactors(reactors, n); } } return n; }