Esempio n. 1
0
if ($cid) {
    $navmode = "contest";
}
require "./navigation.php";
?>

<?php 
global $app_config;
$sid = $_GET['sid'];
if (isset($_GET['cid'])) {
    $cid = $_GET['cid'];
} else {
    $cid = "";
}
if ($cid) {
    $problem = new ContestStatus($cid);
    $problem->Get($sid);
    $sid = $problem->detail['sid'];
}
$status = new StatusTbl();
if (!$status->Get($sid)) {
    error("No such submission!");
}
$content = $status->detail['compilelog'];
$content = ereg_replace("[0-9a-zA-Z]*/", "", $content);
?>

<div style="background-image: url(images/bg2.gif); padding: 15px;">

    <table width="100%">
        <tr><td>
Esempio n. 2
0
/**
 * Submit Source code to server
 * @global type $login_uid
 * @global type $login_username
 * @global type $logged
 * @param type $arg
 * @return mixed if success, return sid. otherwise error message
 */
function submit_source($pid, $cid, $language, $source)
{
    if (!is_logged()) {
        return "Invalid login";
    }
    $pid = intval(trim($pid));
    $source = trim($source);
    if ($cid) {
        $problem = new ContestProblem($cid);
        if (!is_contest_accessible($cid)) {
            return "You can't access to the contest";
        }
        if (is_contest_ended($cid) && !is_contest_modifiable($cid)) {
            return "Contest is finished";
        }
    } else {
        $problem = new ProblemTbl();
    }
    if (!$problem->Get($pid)) {
        return "Invalid Problem ID!";
    }
    $acutal_cid = $problem->detail['cid'];
    if (!$cid && $acutal_cid) {
        // this is a problem automaticly added after the end of contest
        if (!is_contest_accessible($acutal_cid)) {
            return "You can't access to this problem";
        }
        if (!is_contest_modifiable($acutal_cid) && !is_contest_ended($acutal_cid)) {
            return "Contest is not finished. Can't submit to normal problem";
        }
    }
    $sdata = array();
    $sdata["contest"] = $cid;
    if ($language < 1 || $language > 4) {
        return "Invalid language!";
    }
    $sdata['language'] = $language;
    $app_config = get_app_config();
    $codelength = strlen($source);
    if ($codelength > $app_config['max_sourcecode_length']) {
        return "Size of your submittion exceeds limitation.";
    }
    if ($codelength == 0) {
        return "You can't submit an empty source code";
    }
    $sdata['uid'] = get_uid();
    $sdata['time'] = date("Y-m-d H:i:s");
    if ($cid) {
        $sdata['pid'] = $problem->detail['pid'];
        $cpid = $pid;
        $pid = $sdata['pid'];
    } else {
        $sdata['pid'] = $pid;
    }
    $sdata['codelength'] = $codelength;
    $sdata['sourcecode'] = mysql_real_escape_string($source);
    $status = new StatusTbl();
    $status->detail = $sdata;
    $status_id = $status->Add();
    $user = new UserTbl(get_uid());
    $user->Get();
    $user->update['submissions'] = $user->detail['submissions'] + 1;
    $user->Update();
    $problem = new ProblemTbl($pid);
    $problem->Get();
    $problem->update['submissions'] = $problem->detail['submissions'] + 1;
    $problem->Update();
    if ($cid) {
        $con_status = new ContestStatus($cid);
        $con_status->detail = array('cid' => $cid, 'sid' => $status_id, 'cpid' => $cpid);
        $con_status->Add();
    }
    $queue = new QueueTbl();
    $queue->detail['sid'] = $status_id;
    if ($cid) {
        $queue->detail['cid'] = $cid;
        $queue->detail['cpid'] = $cpid;
    }
    $queue->Add();
    return $status_id;
}
Esempio n. 3
0
?>
</th><th><?php 
echo _("Accepted");
?>
</th><th><?php 
echo _("Submissions");
?>
</th></tr></thead>
		<?php 
do {
    echo "<tr>";
    $spj = empty($problem->detail['special_judge']) ? "" : _("[Speical judge]");
    if (!$logged) {
        echo "<td></td>";
    } else {
        $status = new ContestStatus($cid);
        if ($status->GetByFields(array('cpid' => $problem->detail['cpid'], 'status' => 'Accepted', 'uid' => $login_uid))) {
            echo "<td>Y</td>";
        } else {
            if ($status->GetByFields(array('cpid' => $problem->detail['cpid'], 'uid' => $login_uid))) {
                echo "<td>-</td>";
            } else {
                echo "<td></td>";
            }
        }
    }
    $cpid = $problem->detail['cpid'];
    if (!isset($ac_num[$cpid]) || !isset($sm_num[$cpid])) {
        $ac_num[$cpid] = $problem->detail['accepted'];
        $sm_num[$cpid] = $problem->detail['submissions'];
    }