cpp for spoj.