結果
| 問題 |
No.447 ゆきこーだーの雨と雪 (2)
|
| ユーザー |
|
| 提出日時 | 2016-11-19 21:50:14 |
| 言語 | PHP (843.2) |
| 結果 |
WA
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 2,251 bytes |
| コンパイル時間 | 3,945 ms |
| コンパイル使用メモリ | 32,020 KB |
| 実行使用メモリ | 35,016 KB |
| 最終ジャッジ日時 | 2024-11-27 06:18:34 |
| 合計ジャッジ時間 | 17,609 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 25 |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php
ini_set('error_reporting', E_ALL & ~E_NOTICE);
// define('DEBUG', true);
define('DEBUG', false);
$ans = array();
$Pcnt = array();
fscanf(STDIN, "%d", $N);
$L = explode(" ", trim(fgets(STDIN)));
fscanf(STDIN, "%d", $T);
for ($i = 0; $i < $T; $i++) {
fscanf(STDIN, "%s %s", $Name, $P);
$intP = getIntP($P);
if (DEBUG) echo "{$P} {$intP}\n";
$Pcnt[$intP]++;
if (DEBUG) echo $Pcnt[$intP] . PHP_EOL;
$score = floor(50 * $L[$intP] + 50 * $L[$intP] / (.8 + .2 * $Pcnt[$intP]));
if (DEBUG) echo $score . PHP_EOL;
$ans[$Name][$intP] = $score;
$ans[$Name]['lastmod'] = $i;
}
if (DEBUG) var_dump($ans);
foreach ($ans as $name => $v) {
$score = 0;
for ($i = 0; $i < count($L); $i++) {
$score += $ans[$name][$i];
}
$ans[$name]['score'] = $score;
}
$board = array();
foreach ($ans as $name => $v) {
$base = $ans[$name];
$base['name'] = $name;
$board[] = $base;
}
if (DEBUG) var_dump($board);
$people = count($board);
for ($i = 0; $i < $people - 1; $i++) {
for ($j = $i + 1; $j < $people; $j++) {
$swap1 = $board[$i]['score'] < $board[$j]['score'];
$swap2a = $board[$i]['score'] == $board[$j]['score'];
$swap2b = $board[$i]['lastmod'] > $board[$j]['lastmod'];
if ($swap1 || ($swap2a && $swap2b)) {
$tmp = $board[$i];
$board[$i] = $board[$j];
$board[$j] = $tmp;
// $board[$i][$personB] = $board[$j][$personB];
// $board[$j][$personA] = $board[$i][$personA];
// unset($board[$j][$personB]);
// unset($board[$i][$personA]);
}
}
}
if (DEBUG) var_dump($board);
for ($i = 0; $i < $people; $i++) {
echo $i + 1;
echo " ";
echo $board[$i]['name'];
echo " ";
for ($j = 0; $j < count($L); $j++) {
echo $board[$i][$j] ?: 0;
echo " ";
}
echo $board[$i]['score'];
echo PHP_EOL;
}
function getIntP($s) {
return ord($s) - ord('A');
}