結果

問題 No.232 めぐるはめぐる (2)
ユーザー 綾地寧々
提出日時 2015-06-26 23:27:06
言語 PHP
(843.2)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 1,456 bytes
コンパイル時間 1,860 ms
コンパイル使用メモリ 31,508 KB
実行使用メモリ 34,828 KB
最終ジャッジ日時 2024-07-07 18:31:04
合計ジャッジ時間 5,774 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19 WA * 3
権限があれば一括ダウンロードができます
コンパイルメッセージ
No syntax errors detected in Main.php

ソースコード

diff #

<?php
define("INPUT_UP", "^");
define("INPUT_DOWN", "v");
define("INPUT_LEFT", "<");
define("INPUT_RIGHT", ">");
list($t, $a, $b) = explode(" ",trim(fgets(STDIN)));
if ( max($a, $b) > $t ) {
	echo 'NO'.PHP_EOL;
	return;
}
$move_string = array_fill(0,$t,"");
// 上方向判定
for ( $i=0; $i<$a; $i++ ) {
	$move_string[$i] = INPUT_UP.$move_string[$i];
}
// 右方向判定
for ( $i=0; $i<$b; $i++ ) {
	$move_string[$t-$i-1] = INPUT_RIGHT.$move_string[$t-$i-1];
}
// 未入力タイミング回数のカウント
$no_input_count = 0;
foreach ( $move_string as $str ) {
	if ( strlen($str) == 0 ) {
		$no_input_count++;
	}
}
$odd_input_mode = 0;
// 未入力タイミングが1回しかなければあきらめてもらう
if ( $no_input_count == 1 ) {
	echo 'NO'.PHP_EOL;
	return;
}
// 未入力タイミングが奇数回なら同時押しで戻る戦法を使えば大丈夫
else if ( $no_input_count % 2 ) {
	$odd_input_mode = 3;
}
// 答え出力
echo 'YES'.PHP_EOL;
foreach ( $move_string as $str ) {
	if ( strlen($str) > 0 ) {
		echo $str;
	}
	else {
		if ( $odd_input_mode ) {
			switch ( $odd_input_mode ) {
				case 3:
					echo INPUT_RIGHT;
					break;
				case 2:
					echo INPUT_UP;
					break;
				case 1:
					echo INPUT_DOWN.INPUT_LEFT;
					break;
				default:
					break;
			}
			$odd_input_mode--;
		}
		else if ( !($no_input_count % 2) ) {
			echo INPUT_RIGHT;
		}
		else {
			echo INPUT_LEFT;
		}
		$no_input_count--;
	}
	echo PHP_EOL;
}
0