## Starting - Look for unusual conditions! - Consider bounds, but not too much - Do the sample cases! - Write stuff down! ## Stuck - Do something instead of nothing! - Stay organized - Make more test cases! - Consider simpler cases - Rephrase conditions - Don't be afraid of casework - Work backwords and think about what the solution looks like - Start over from a different direction! - Write a slower algorithm - Construct a new graph or tree, or express a tree as an array - Try a geometric transformation - Find an invariant - Try to force a known algorithm to work ## Submitting - Consider corner cases - Watch out for overflow and bounds! - Make sure you clear stuff between test cases