paizaラーニング「長テーブルのうなぎ屋」を43行のPHPコードで100点取ってみた
2016年4月8日
Category - 技術
<?php
$input_lines = explode(' ', fgets(STDIN));
$n_count = intval($input_lines[0]);// 座席の数
$m_count = intval($input_lines[1]);// グループの数
$chair_state = array();
for ($i=1; $i <= $n_count; $i++) {
$chair_state[$i] = 0;
}
for ($i = 0; $i < $m_count; $i++) {
$people_place = fgets(STDIN);
$people_place = explode(" ", $people_place);
$people = intval($people_place[0]);
$place = intval($people_place[1]);
$chair_empty_flag = array();
for ($j=$place; $j < ($place+$people); $j++) {
if($j > $n_count) {
if($chair_state[$j-$n_count] == 0)
$chair_empty_flag[] = true;
else
$chair_empty_flag[] = false;
}
else {
if($chair_state[$j] == 0)
$chair_empty_flag[] = true;
else
$chair_empty_flag[] = false;
}
}
if(array_search(false, $chair_empty_flag) === false) {
for ($j=$place; $j < ($place+$people); $j++) {
$chair_state[$j] = 1;
}
}
}
$chair_result = array_count_values($chair_state);
echo $chair_result[1];