結果

問題 No.232 めぐるはめぐる (2)
ユーザー nablaenergy_21nablaenergy_21
提出日時 2015-07-18 20:08:05
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 5 ms / 1,000 ms
コード長 1,187 bytes
コンパイル時間 1,819 ms
コンパイル使用メモリ 26,264 KB
実行使用メモリ 4,372 KB
最終ジャッジ日時 2023-10-12 13:39:17
合計ジャッジ時間 3,665 ms
ジャッジサーバーID
(参考情報)
judge15 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 5 ms
4,372 KB
testcase_01 AC 4 ms
4,368 KB
testcase_02 AC 4 ms
4,372 KB
testcase_03 AC 5 ms
4,368 KB
testcase_04 AC 1 ms
4,372 KB
testcase_05 AC 2 ms
4,368 KB
testcase_06 AC 1 ms
4,368 KB
testcase_07 AC 1 ms
4,368 KB
testcase_08 AC 3 ms
4,372 KB
testcase_09 AC 1 ms
4,368 KB
testcase_10 AC 1 ms
4,368 KB
testcase_11 AC 1 ms
4,372 KB
testcase_12 AC 1 ms
4,372 KB
testcase_13 AC 2 ms
4,368 KB
testcase_14 AC 1 ms
4,372 KB
testcase_15 AC 1 ms
4,368 KB
testcase_16 AC 1 ms
4,372 KB
testcase_17 AC 1 ms
4,372 KB
testcase_18 AC 2 ms
4,372 KB
testcase_19 AC 1 ms
4,368 KB
testcase_20 AC 2 ms
4,372 KB
testcase_21 AC 2 ms
4,372 KB
testcase_22 AC 2 ms
4,368 KB
testcase_23 AC 1 ms
4,368 KB
testcase_24 AC 1 ms
4,372 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <stdio.h>
#include <stdlib.h>

/*
A<=TかつB<=Tかつ「「T==1かつA==0かつB==0」でない」ところすべてに移動できる。

移動できる場合どうすればいいかというと、
・A==Tなら、右上にB回、上にT-B回動けばよい。
・B==Tなら、右上にA回、右にT-A回動けばよい。

それ以外の場合は、次のようにする。
・A==T-1 かつ B==T-1なら、右に1回動く。B--;T--;として、上に帰着。
・A==T-1 かつ B< T-1なら、左に1回動く。B++;T--;として、上に帰着。
・それ以外は、下に1回動く。
*/

int main(){
	int T,A,B,i,M,N;

	scanf("%d %d %d",&T,&A,&B);
	if(A>T || B>T || (T==1 && A==0 && B==0)){
		printf("NO\n");
		return 0;
	}
	printf("YES\n");

	while(T>0){
		if(A==T){
			for(i=0;i<B;i++){
				printf("^>\n");
			}
			for(i=0;i<T-B;i++){
				printf("^\n");
			}
			return 0;
		}else if(B==T){
			for(i=0;i<A;i++){
				printf("^>\n");
			}
			for(i=0;i<T-A;i++){
				printf(">\n");
			}
			return 0;
		}else if(A==T-1 && B==T-1){
			printf(">\n");
			B--;T--;
		}else if(A==T-1){
			printf("<\n");
			B++;T--;
		}else{
			printf("v\n");
			A++;T--;
		}	
	}
	return 0;
}
0