ref: https://github.com/renbaoshuo/S2OJ/pull/3