結果
| 問題 |
No.232 めぐるはめぐる (2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-05-04 02:19:15 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,776 bytes |
| コンパイル時間 | 2,211 ms |
| コンパイル使用メモリ | 77,176 KB |
| 実行使用メモリ | 52,628 KB |
| 最終ジャッジ日時 | 2024-10-05 06:13:57 |
| 合計ジャッジ時間 | 10,846 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 WA * 2 |
| other | AC * 1 WA * 19 RE * 2 |
ソースコード
package yukicoder;
import java.util.Scanner;
public class Main{
public static void main(String[] args)throws Exception{
new Main().solve();
}
void solve(){
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
int a=sc.nextInt();
int b=sc.nextInt();
String[] ans=new String[t];
while(a>0&&b>0){
if(a==1&&b==1)last(a,b,t,ans);
ans[t-1]="^>";
a--;b--;t--;
}
while(a>0){
if(a==1&&b==0)last(a,b,t,ans);
ans[t-1]="^";
a--;t--;
}
while(a<0){
if(a==-1&&b==0)last(a,b,t,ans);
ans[t-1]="v";
a++;t--;
}
while(b>0){
if(b==1&&a==0)last(a,b,t,ans);
ans[t-1]=">";
b--;t--;
}
while(b<0){
if(b==-2&&a==0)last(a,b,t,ans);
ans[t-1]="<";
b++;t--;
}
}
boolean safe(int a,int b){
int[] x={1,0,1};
int[] y={1,1,0};
for(int i=0;i<3;i++){
if(x[i]==a&&y[i]==b)return true;
}
return false;
}
void last(int a,int b,int t,String[] ans){
if(t==2&&(a==-1||b==-1)){
System.out.println("NO");
System.exit(0);
}else if(t<=0){
System.out.println("NO");
System.exit(0);
}else{
//a↑ b→
if(b==-1){
a++;
ans[t-1]="v";
t--;
}else if(a==-1){
ans[t-1]="<";
b++;
t--;
}
int[] da={1,1,0,-1,0};
int[] db={1,0,1,0,-1};
String[] ds={"^>","^",">","v","<"};
while(t>=2){
for(int i=0;i<5;i++){
int na=a-da[i];
int nb=b-db[i];
if(safe(na, nb)){
// System.out.println(na+" "+nb+" "+ds[i]);
a=na;
b=nb;
ans[t-1]=ds[i];
t--;
break;
}
}
}
for(int i=0;i<5;i++){
int na=a-da[i];
int nb=b-db[i];
if(na==0&&nb==0){
a=na;
b=nb;
ans[t-1]=ds[i];
t--;
break;
}
}
for(int i=ans.length-1;i>=0;i--)System.out.println(ans[i]);
System.exit(0);
}
}
}