else
preparedstatement = connection.prepareStatement("SELECT count(problem_id) as total FROM problem where UPPER(defunct) = 'N'");
resultset = preparedstatement.executeQuery();
resultset.next();
total = resultset.getInt("total");
Page page = new Page(total, size, request.getQueryString());
page.setCurrentPage(p);
pages = page.getTotalPages();
FormattedOut.printHead(out, request, connection, (new StringBuilder()).append("Problem List ").append(p).toString());
out.println((new StringBuilder()).append("<p align=center><font size=5>Problem List</font><br/>").toString());
for (int j = 1; j <= pages; j++)
out.println((new StringBuilder()).append(" <a href=\"problemlist?").append(page.getQueryString(j)).append("\"><font size=5").append(p != j ? " " : " color=red").append(">").append(j).append("</font></a>").toString());
out.println("</p>");
out.println("<img src='./images/search.gif' alt='search'><font color=blue size=5><b>Search:</b></font>");
out.println((new StringBuilder()).append("<form method=get action=searchproblem><input type=text name=sstr size=25 value='").append("'><select size=1 name=manner><option value=0 selected>All</option><option value=1 >Title</option><option value=2 >Source</option><option value=3 >Tag</option></select><input type=submit value=Search></p>").toString());
out.println("</form>");
out.println("<TABLE cellSpacing=0 cellPadding=0 align=center width=99% border=1 background=images/table_back.jpg style=\"border-collapse: collapse\" bordercolor=#FFFFFF>");
out.println("<tr bgcolor=#6589D1>");
//HttpSession session = request.getSession(true);
//session.setAttribute("page", p);
Tool.addCookie(response, "oj_problem_page", String.valueOf(p), 604800);
if (logined)
{
/*preparedstatement = connection.prepareStatement("update users set volume=? where user_id=?");
preparedstatement.setLong(1, p);
preparedstatement.setString(2, user);
preparedstatement.executeUpdate();
*/
out.println("<td width=5% align=center>Solved</td>");
out.println((new StringBuilder()).append("<td width=10% align=center><a href=\"problemlist?p=").append(p).append("\"><b><font color=white>ID</font></b></a></td>").toString());
out.println(new StringBuilder().append("<td width=50% align=center><a href=\"problemlist?order=title&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><b><font color=black>Title</font></b></a></td>").toString());
} else
{
out.println((new StringBuilder()).append("<td width=10% align=center><a href=\"problemlist?p=").append(p).append("\"><b><font color=white>ID</font></b></a></td>").toString());
out.println(new StringBuilder().append("<td width=55% align=center><a href=\"problemlist?order=title&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><b><font color=black>Title</font></b></a></td>").toString());
}
out.println((new StringBuilder()).append("<td width=15% align=center><b><a href=\"problemlist?order=ratio&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><font color=white>Ratio</font></a>(<a href=\"problemlist?order=accepted&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><font color=red>AC</font></a>/<a href=\"problemlist?order=submit&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><font color=white>submit</font></a>)</b></td>").toString());
out.println((new StringBuilder()).append("<td width=8% align=center><a href=\"problemlist?order=difficulty&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><b><font color=white>Difficulty</font></b></a></td>").toString());
out.println(new StringBuilder().append("<td width=12% align=center><a href=\"problemlist?order=date&asc=").append(asc.equals("")?"desc":"").append("&p=").append(p).append("\"><font color=black>Date</font></a></td>").toString());
out.println("</tr>");
preparedstatement = connection.prepareStatement((new StringBuilder()).append("select problem_id,source,title,contest_id,ratio,accepted,submit,difficulty,in_date,defunct from problem ").append("problem_id".equals(order)?"":"where UPPER(defunct) = 'N'").append("order by ").append(order).append(" limit ").append(page.getLimit()).append(",").append(size).toString());
resultset = preparedstatement.executeQuery();
while(resultset.next())
{
if (!"N".equalsIgnoreCase(resultset.getString("defunct")))
continue;