$MSG_Login";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
}
$langmask=$OJ_LANGMASK;
$problem_id = 1000;
if (isset($_GET['id'])) {
$id = intval($_GET['id']);
}
else if (isset($_GET['cid']) && isset($_GET['pid'])) {
$cid = intval($_GET['cid']);
$pid = intval($_GET['pid']);
require_once("contest-check.php");
$psql = "SELECT problem_id FROM contest_problem WHERE contest_id=? AND num=?";
$data = pdo_query($psql,$cid,$pid);
$row = $data[0];
$problem_id = $row[0];
}
else {
$view_errors = "
No Such Problem!
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
$view_src = "";
$lastlang = 1;
if (isset($_GET['sid'])) {
$sid = intval($_GET['sid']);
$sql = "SELECT * FROM `solution` WHERE `solution_id`=?";
$result = pdo_query($sql,$sid);
$row = $result[0];
$cid = intval($row['contest_id']);
$sproblem_id= intval($row['problem_id']);
$contest_id=$cid;
if ($row && $row['user_id']==$_SESSION[$OJ_NAME.'_'.'user_id'])
$ok = true;
$need_check_using=true;
if ( $contest_id > 0 ){
$sql="select start_time,end_time from contest where contest_id=?";
$result=pdo_query($sql,$contest_id);
if($result){
$row=$result[0];
$start_time = strtotime($row['start_time']);
$end_time = strtotime($row['end_time']);
$now=time();
if( $end_time < $now ){ // 当前提交,属于已经结束的比赛,考察是否有进行中的比赛在使用。
$need_check_using=true;
}else{ // 属于进行中的比赛,可以看
// echo $now.'-'.$end_time;
$need_check_using=false;
}
}
}else{ //非比赛提交.考察是否有进行中的比赛在使用
// echo $now.'+'.$end_time;
if(isset($_SESSION[$OJ_NAME.'_'.'source_browser']))
$need_check_using=false;
else
$need_check_using=true;
}
// 检查是否使用中
//echo $now.'*'.$end_time;
$now = date('Y-m-d H:i', time());
$sql="select contest_id from contest where contest_id in (select contest_id from contest_problem where problem_id=?)
and start_time < '$now' and end_time > '$now' ";
if($need_check_using){
//echo $sql;
$result=pdo_query($sql,$sproblem_id);
if(count($result)>0 && !isset($_SESSION[$OJ_NAME.'_'.'source_browser'])){
$view_errors = "";
$view_errors .= "$MSG_CONTEST_ID : ".$result[0][0]."
";
$view_errors .= " $MSG_SOURCE_NOT_ALLOWED_FOR_EXAM
";
$view_errors .= "
";
$view_errors .= "";
$view_errors .= "
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
}
if (isset($_SESSION[$OJ_NAME.'_'.'source_browser'])) {
$ok = true;
}
else {
if (isset($OJ_EXAM_CONTEST_ID)) {
if ($cid < $OJ_EXAM_CONTEST_ID && !isset($_SESSION[$OJ_NAME.'_'.'source_browser'])) {
$view_errors = "";
$view_errors .= "$MSG_CONTEST_ID : ".$OJ_EXAM_CONTEST_ID."+
";
$view_errors .= " $MSG_SOURCE_NOT_ALLOWED_FOR_EXAM
";
$view_errors .= "
";
$view_errors .= "";
$view_errors .= "
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
}
}
if ($ok == true) {
$sql = "SELECT `source` FROM `source_code_user` WHERE `solution_id`=?";
$result = pdo_query($sql,$sid);
$row = $result[0];
if ($row)
$view_src = $row['source'];
if(isset($cid)&&$cid>0){
$sql = "SELECT langmask FROM contest WHERE contest_id=?";
$result = pdo_query($sql,$cid);
$row = $result[0];
if (count($row)>0){
$_GET['langmask'] = $row['langmask'];
$langmask= $row['langmask'];
}
}
$sql="select language from solution where solution_id=?";
$result=pdo_query($sql,$sid);
$row=$result[0];
if($row)
$lastlang=intval($row['language']);
//echo $lastlang;
}
}
if (isset($id))
$problem_id = $id;
$view_sample_input = "1 2";
$view_sample_output = "3";
$spj=0;
$sample_sql = "SELECT sample_input,sample_output,problem_id,spj,remote_oj FROM problem WHERE problem_id = ?";
$remote_oj = "";
if (isset($sample_sql)) {
//echo $sample_sql;
if (isset($_GET['id'])) {
$result = pdo_query($sample_sql,$id);
}
else {
$result = pdo_query($sample_sql,$problem_id);
}
if($result == false)
{
$view_errors = "No Such Problem!
";
require("template/".$OJ_TEMPLATE."/error.php");
exit(0);
}
$row = $result[0];
$view_sample_input = $row['sample_input'];
$view_sample_output = $row['sample_output'];
$problem_id = $row['problem_id'];
$spj=$row['spj'];
$remote_oj= $row['remote_oj'];
if($spj>1) $OJ_ACE_EDITOR=false;
}
$solution_file = "$OJ_DATA/$problem_id/solution.name";
if(file_exists($solution_file)){
$solution_name=file_get_contents($solution_file);
}else{
$solution_name=false;
}
if (!$view_src) {
if (isset($_COOKIE['lastlang']) && $_COOKIE['lastlang']!="undefined") {
$lastlang = intval($_COOKIE['lastlang']);
}
else {
$sql = "SELECT language FROM solution WHERE user_id=? ORDER BY solution_id DESC LIMIT 1";
$result = pdo_query($sql,$_SESSION[$OJ_NAME.'_'.'user_id']);
if (count($result)>0) {
$lastlang = $result[0][0];
}
else {
$lastlang = 1; // 默认语言 default language : 0=C 1=C++ 3=Java 6=Python
}
//echo "last=$lastlang";
}
$template_file = "$OJ_DATA/$problem_id/template.".$language_ext[$lastlang];
if (file_exists($template_file)) {
$view_src = file_get_contents($template_file);
}else if ($spj>1 && file_exists("$OJ_DATA/$problem_id/template.c")) {
$view_src = file_get_contents("$OJ_DATA/$problem_id/template.c");
}else if ($spj==2 && file_exists("$OJ_DATA/$problem_id/test.in") ){
$total=file_get_contents("$OJ_DATA/$problem_id/test.in");
$total=intval($total);
$view_src="";
for($i=1;$i<=$total;$i++){
$view_src.=$i."\n";
}
}
}
$sql = "SELECT count(1) FROM `solution` WHERE result<4";
$result = mysql_query_cache($sql);
$row = $result[0];
if ($row[0]>10) {
$OJ_VCODE = true;
//$OJ_TEST_RUN=false;
//echo "$row[0]";
}
/////////////////////////Template
require("template/".$OJ_TEMPLATE."/submitpage.php");
/////////////////////////Common foot
?>