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