Exemplo n.º 1
0
/**
 * Get a pid to cpid mapping array of a particular contest
 * @param type $cid contest id
 * @return array pid to cpid mapping 
 */
function get_cpids($cid)
{
    $cpid_hash = array();
    $contest_problem_tbl = new ContestProblemTbl($cid);
    if ($contest_problem_tbl->Get()) {
        do {
            $cpid_hash[$contest_problem_tbl->detail['pid']] = $contest_problem_tbl->detail['cpid'];
        } while ($contest_problem_tbl->MoreRows());
    }
    return $cpid_hash;
}
Exemplo n.º 2
0
function UpdateContestProblemMap($cid, $cpidMap)
{
    global $conn;
    $rs = new RecordSet($conn);
    $rs->Query("DELETE FROM contest_problems WHERE cid = {$cid}");
    $rs->affected_rows();
    $indexs = array_keys($cpidMap);
    sort($indexs);
    $count = 1000;
    foreach ($indexs as $index) {
        $cpTbl = new ContestProblemTbl();
        $cpTbl->detail['cid'] = $cid;
        $cpTbl->detail['pid'] = $cpidMap[$index];
        $cpTbl->detail['cpid'] = $count;
        $cpTbl->Add();
        ++$count;
    }
}
Exemplo n.º 3
0
<?php

require "./navigation.php";
$cid = safeget("cid");
$contestTbl = new ContestsTbl($cid);
if (!$contestTbl->Get()) {
    error("Contest not found");
}
$course_id = $contestTbl->detail['course_id'];
if (!is_contest_modifiable($cid)) {
    error("No permission");
}
$contestProblemTbl = new ContestProblemTbl($cid);
$cpidIndex = array();
if ($contestProblemTbl->Get()) {
    do {
        $cpidIndex[$contestProblemTbl->detail['pid']] = $contestProblemTbl->detail['cpid'];
    } while ($contestProblemTbl->MoreRows());
}
$contest = $contestTbl->detail;
$p = tryget("p", 1);
$rs = new RecordSet($conn);
$query_str = "SELECT problems.pid FROM problems LEFT JOIN contest_problems ON contest_problems.pid = problems.pid WHERE avail = 1 AND problems.cid = {$cid} ";
$count_str = "SELECT count(*) FROM problems WHERE avail = 1 AND cid = {$cid} ";
$rs->nPageSize = 20;
$rs->PageCount($count_str);
$rs->SetPage($p);
$query_str .= "ORDER BY cpid ASC";
$rs->dpQuery($query_str);
$now = time();
?>