Skip to content

Instantly share code, notes, and snippets.

@falms
Created September 14, 2011 11:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save falms/1216375 to your computer and use it in GitHub Desktop.
Save falms/1216375 to your computer and use it in GitHub Desktop.
(5) 一人ゲーム
<?php
$num_tests = i();
for($ti=0; $ti<$num_tests; $ti++){
$num_elems = i();
$ques = array();
$ques[] = array("count" => 0, "elems" => explode(" ",i()));
while($que = array_shift($ques)){
if($num_5muls = count5muls(&$que["elems"])){
if($num_5muls == count(&$que["elems"])){
print ($que["count"]+1).PHP_EOL;
break;
}else{
array_push($ques, array("count" => $que["count"]+1, "elems" => divElems($que["elems"])));
if($elems_new = delElems($que["elems"])){
array_push($ques, array("count" => $que["count"]+1, "elems" => $elems_new));
}
}
}else{
array_push($ques, array("count" => $que["count"]+1, "elems" => divElems($que["elems"])));
}
}
}
function printElems($elems){
print "[".implode(" ", $elems)."]".PHP_EOL;
}
function divElems($elems){
foreach($elems as &$elem){
$elem = (int)($elem/2);
}
return $elems;
}
function delElems($elems){
for($i=0; $i<count($elems); ){
if($elems[$i] % 5 == 0){
array_splice($elems, $i, 1);
}else{
$i++;
}
}
return $elems;
}
function count5muls($elems){
$num_5muls = 0;
foreach($elems as $elem){
if($elem % 5 == 0){$num_5muls++;}
}
return $num_5muls;
}
function i(){
return trim(fgets(STDIN, 1024));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment