# 目錄 <!-- MarkdownTOC --> - [大致流程](#大致流程) - [下載 PC2](#下載-pc2) - [前置設定](#前置設定) - [比賽中](#比賽中) - [參考資料](#參考資料) <!-- /MarkdownTOC --> <a name="大致流程"></a> # 大致流程 - 下載 PC<sup>2</sup> - 前置設定 - 比賽中 - 結束 <a name="下載-pc2"></a> # 下載 PC<sup>2</sup> 下載位置: http://pc2.ecs.csus.edu/secret.1201.html 建議是下載 ZIP 檔,這樣在 Linux 和 Windows 都可以使用 <a name="前置設定"></a> # 前置設定 先分成 server 跟 client 端。 - *先設定 server 端* - 解壓縮下載後的檔案 (以 pc2-9.3.0-3388.zip 為例),會出現資料夾 (pc2-9.3.0),暫且稱這個資料夾位置為 `/` - 打開 `/pc2v9.ini`,把 `Site 1` 的 `localhost` 改成要當作 server 端的 ip ``` # # pc2v9.ini - settings for pc2 # $Header$ # pc2@ecs.csus.edu # # For all possible .ini entries see pc2v9.ini in the samps directory. [client] # Site 1 server=192.168.34.136:50002 # Site 2 # server=localhost:51002 # Site 3 # server=localhost:52002 [server] # For site 2 and Site 3 # remoteServer=localhost:50002 # eof $Id: pc2v9.ini 165 2007-04-07 20:05:32Z laned $ ``` - 把 `/pc2v9.ini` 移動到 `/bin` 裡面 - Linux 環境下可以把 `/bin` 裡面所有 bat 檔刪除 bash 指令: `rm *.bat` - Linux 下用 bash 執行 - 用文字編輯器分別打開 `/bin/pc2server`, `/bin/pc2admin`, `/bin/pc2judge`, `/bin/pc2board`, `/bin/pc2team` - 把第一行的 `#!/bin/sh` 改成 `#!/bin/bash` 後儲存 - 視情況可以修改 `/data/xsl` 裡的 scoreboard 模板 - **將整個根目錄 `/` clone 一份當作 client 端** ## pc2server - 開啟 `/bin/pc2server` 帳號 **site1** 密碼 **site1** - 第一次執行跳出視窗要你輸入 password,這裡是對於 server 的二次密碼,依喜好輸入即可 - 之後執行會要求此密碼 ## pc2admin 開啟 `/bin/pc2admin` 帳號 **root** 密碼 **administrator1** ### ▌ 設定 **Account** + 用 Generate 可以快速產生想要的 team, judge, scoreboard 數量 + 基本上是 1 個 scoreboard、至少等同於題數的 judge、和大於參賽隊伍的 team (多幾個來做測試) * 要注意:開 pc2server 的電腦最好不要開其他東西(包含 pc2judge 和 pc2admin),以免意外當機的時候延宕整個比賽。 + 只能修改,沒辦法刪除 (小弟我不會刪) ### ▌ 設定 **Problems** + 用 Add 新增題目 + 在 General 中 * Problem name: 要顯示的題目名稱 * Run Timeout Limit (Sec): TLE 的限制秒數 * Problem Requires Input Data - Team Reads From: 基本上用 stdin - Input Data File: 選輸入測資 (Windows 下產生的文字檔可能會出現是否要轉換成 Linux 格式的訊息,選 Yes 就好) + 在 Judging Type 選 Computer Judging * Manual Review 不用選 + 在 Validator 中 * 選 Use PC^2 Validator * Validator Option 選 diff + 點 Add 完成 + 重複以上動作完成所有題目的新增 ### ▌ 設定 **Auto Judge** + 對每一個 Judge 作 Edit + 勾選 Enable Auto Judging + 分派題目,最基本要每個題目都分配到 1 個 Judge ### ▌ 設定 **Languages** + 點 Add 新增 + 修改 Auto Populate with 的選項就好,基本上是新增 Java, GNU C++, GNU C ### ▌ 設定 **Times** + PC<sup>2</sup> 預設是 5 小時 + 點 Edit * Remaining: 剩餘時間 * Elapsed: 已過時間 * Length: 總時間 * 勾選 Stop Clock at end of contest (印象中不勾選會變成負的) ### ▌ 設定 **Settings** + 可以修改 Contest Title + 點選 Edit Scoring Properties 修改時間懲罰 * 基本上 CE 跟 No (WA) 都是 20 * Security Violation 可以設重一點 ## pc2judge - 執行 `/bin/pc2judge` 輸入帳號密碼 - 預設是 `judge#` (`#` 為數字,例如:`judge2`) - 開啟與在 **pc2admin** 的 **Account** 相對應數量的 judge ## pc2team - *再設定 client 端* - 以 client 資料夾為 `/` - 先刪除 `/bin/pc2server` 和 `/bin/pc2admin` - Windows 加刪 `/bin/pc2server.bat` 和 `/bin/pc2admin.bat` - 想要再防範的話可以多刪 `/bin/pc2judge` 和 `/bin/pc2board` - 將 client 端的檔案分派給所有的參賽組別,並告知各組的帳號及密碼 (預設是帳號密碼同為 team#,如 team12) ## pc2board - *scoreboard 設定* - 無 Apache - 選定一台電腦連接投影機 - 開啟 `/bin/pc2board` 帳號 **scoreboard1** 密碼 **scoreboard1** - 會有檔案新增至 `/bin/html/` - 選一個喜歡的投影給選手看www - 要修改內容請至 `/data/xsl/` 裡直接修改模板,因為這裡面的檔案是自動生成的 - 有 Apache - 小弟我還不清楚 - 關於 scoreboard 在 display name 為中文時,會出現亂碼的問題: - 編輯 pc2board - 在執行 java 的參數補上 `-Dfile.encoding=utf8` <a name="比賽中"></a> # 比賽中 到 **pc2admin** 的 **Times** 點 Start ## pc2admin + 切換到 **Run Contest** + **Logins** 看到所有登入狀況,包含 team, scoreboard, judge * 點選 Logoff 可以強制目標登出 + **Runs** 看到所有人的提交結果 + **Clarifications** 看到所有詢問結果 ## pc2judge + **New Runs** 和 **New Clars** 比 admin 方便找尋新的提交和詢問 + 在前面 Judging Type 選 Computer Judging,以及有分配 Enable Auto Judging 的狀況下,重測時點選 **Rejudge** * 先 **Execute Run** * (待補) + 若非前者的題目,需要先 **Request Run** * (待補) + **All runs** 和 **All clarifications** 和 admin 一樣 <a name="參考資料"></a> # 參考資料 - 官方網站: http://pc2.ecs.csus.edu/ - 官方說明文件: http://pc2.ecs.csus.edu/pc2docs.html