요즘 수학이던 과학이던 생각하는 걸 너무 귀찮게 생각하고 있어, 생각하는 연습을 하기 위해 문제를 풀었다.
그나마 능숙한(?) PHP로 했는데, " java, c++, scalar, js, rb. haskell 만 지원" 한다.
걍. 버림. 뭐,,. 어차피 허접한 코드니... php가 설치된 서버 terminal 에서
$ php [파일명]
으로 실행시킨다.
<?php
function read() {
$fp=fopen("/dev/stdin", "r");
$input=fgets($fp, 255);
fclose($fp);
return str_replace("n", "", $input); // 개행 처리
//return $input;
}
function fest($arr, $l, $s){
//$s 시작 포인트
//$l 연속된 위치까지
$arr_sz=count($arr);
$sum=0;
for($i=$s;$i<$l+$s;$i++){
$sum=$arr[$i]+$sum;
}
return $sum;
}
print("input C ? ");
$c_val = read();
if(is_int(intval($c_val)) && $c_val>0){
$c_val_int=1;
$c_val_num=intval($c_val);
}else{
$c_val_int=0;
}
if($c_val_int){
while($c_val_num--){
print("input N L ? ");
$n_l_val = read();
$n_l_val_list=explode(" ",$n_l_val);
if(count($n_l_val_list)==2){
$n_val=intval($n_l_val_list[0]);
$l_val=intval($n_l_val_list[1]);
if($n_val>=$l_val)
$n_l_val_clear=1;
}else{
$n_l_val_clear=0;
}
if($n_l_val_clear){
print("input cost ? ");
$cost_val = read();
$cost_val_list=explode(" ",$cost_val);
$s_limit=$n_val-$l_val+1;
$s_val=0;
$sum_str="";
$sum_list=array();
if(count($cost_val_list)==$n_val){
while($s_limit--){
$sum_list[]=fest($cost_val_list, $l_val, $s_val++);
}
$sol_list[]=round(min($sum_list)/$l_val,10);
}else{
print("n ------------you should input count(cost)==N-------------- n");
$c_val_num++;
}
}else{
print("n ------------you should input N>=L and two args-------------- n");
$c_val_num++;
}
}
$c_s_l=count($sol_list);
$j=0;
while($c_s_l--){
echo $sol_list[$j++]."n";
}
print("end processn");
}
?>
아래 경로에 있는 문제를 풀어보았다.
http://prague.algospot.com/judge/problem/read/FESTIVAL
댓글 달기