ZOJ 1610: http://www.cnblogs.com/lzj-0218/p/3458222.html
ZOJ 3551: http://www.cnblogs.com/lzj-0218/p/3219716.html