=0 and problem_id>0"; $subList = mysql_query_cache($sql); } else { $sql = "SELECT `solution_id`,`user_id`,`problem_id`,`in_date`,`result` FROM solution WHERE `contest_id`= ? and num>=0 and problem_id>0"; $subList = pdo_query($sql, $cid); } return $subList; } /** * 获得提交过该比赛的账号 * @param $OJ_MEMCACHE * @param $cid * @return mixed */ function getTeamByCid($OJ_MEMCACHE,$cid){ if ($OJ_MEMCACHE) { $sql = "SELECT a.user_id,nick FROM (SELECT distinct user_id FROM solution WHERE contest_id = '$cid')AS a INNER JOIN users WHERE users.user_id = a.user_id"; $teamList = mysql_query_cache($sql); } else { $sql = "SELECT a.user_id,nick FROM (SELECT distinct user_id FROM solution WHERE contest_id = ?)AS a INNER JOIN users WHERE users.user_id = a.user_id"; $teamList = pdo_query($sql, $cid); } return $teamList; } /** * 获得题目ID与 比赛中序号的Map * @param $OJ_MEMCACHE * @param $cid * @return array */ function getProblemMapByCid($OJ_MEMCACHE,$cid) { if ($OJ_MEMCACHE) { $sql = "SELECT `problem_id`,`num` FROM contest_problem WHERE `contest_id` = '$cid'"; $proList = mysql_query_cache($sql); } else { $sql = "SELECT `problem_id`,`num` FROM contest_problem WHERE `contest_id` = ?"; $proList = pdo_query($sql, $cid); } $arr = array(); for($i=0;$i 0) { $row = $result[0]; $start_time = strtotime($row['start_time']); $end_time = strtotime($row['end_time']); $title = $row['title']; } if (!$OJ_MEMCACHE) { // 开始时间仍然为零 说明 比赛不存在 if ($start_time == 0) { $view_errors = "No Such Contest"; require("template/" . $OJ_TEMPLATE . "/error.php"); exit(0); } } // 还未开始 if ($start_time > time()) { $view_errors = "$MSG_CONTEST $MSG_Contest_Pending!"; require("template/" . $OJ_TEMPLATE . "/error.php"); exit(0); } // 还未结束 if ($end_time > time()) { $view_errors = "Contest Not Finished!"; require("template/" . $OJ_TEMPLATE . "/error.php"); exit(0); } $noip = (time()<$end_time) && (stripos($title,$OJ_NOIP_KEYWORD)!==false); if(isset($_SESSION[$OJ_NAME.'_'."administrator"])|| isset($_SESSION[$OJ_NAME.'_'."m$cid"])|| isset($_SESSION[$OJ_NAME.'_'."source_browser"])|| isset($_SESSION[$OJ_NAME.'_'."contest_creator"]) ) $noip=false; if($noip){ $view_errors = "

$MSG_NOIP_WARNING

"; require("template/".$OJ_TEMPLATE."/error.php"); exit(0); } // json 请求时 if (isset($_GET['type'])&&$_GET['type']=='json') { header('Content-Type:application/json'); if(isset($_GET['list'])&&$_GET['list']=='submit'){ $subList = getSubmitByCid($OJ_MEMCACHE,$cid); $problemMap = getProblemMapByCid($OJ_MEMCACHE,$cid); $arr = array(); for($i=0;$i