ALGO: Synthesizing Algorithmic Programs with LLM-Generated Oracle Verifiers