Attention!
Melange harvesting on Tatooine is strictly prohibited.
Thank you for your attention!
cd deploy && docker compose up --build -d
We need to find a way to skip Guess.Loss and consume only Guess.Win.
The intended solution exploits the iternal property of ArrayList. When the Iterator tries to retrieve the next object it compares the modifications couns using the following function.
java/util/ArrayList.java#L1094
private void checkForComodification() {
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}But variables modCount and expectedModCount have int32 type. So if we make INT.MAX_VALUE operations then modCount will overflow and the check will be passed.
So we need to create one iterator to consume successful guesses, let's call it success_iterator. If the next guess is Guess.Win then we consume it using success_iterator. Otherwise we create another iterator and consume Guess.Loss, then close the iterator and update the balance. Then synchronize the internal modCount of success_iterator with ArrayList.
Example solver: solution/solver.py