結果
問題 |
No.232 めぐるはめぐる (2)
|
ユーザー |
![]() |
提出日時 | 2015-07-25 18:57:46 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 135 ms / 1,000 ms |
コード長 | 1,100 bytes |
コンパイル時間 | 1,392 ms |
コンパイル使用メモリ | 81,884 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 12:38:27 |
合計ジャッジ時間 | 2,587 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#include<sstream> #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<string> #include<vector> #include<set> #include<map> #include<queue> #include<numeric> #include<functional> #include<algorithm> #include<bitset> using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) #define indexOf(v,x) (find(all(v),x)-v.begin()) int main(){ int t,a,b; cin>>t>>a>>b; if(t<max(a,b) || t==1&&a==0&&b==0){ cout<<"NO"<<endl; return 0; } cout<<"YES"<<endl; int y,x; y=x=0; while(t){ string mov; if(y==a&&x==b){ if(t&1)mov="v<"; else mov="<"; }else if(y==a){ if((t-(b-x))&1)mov="v>"; else mov=">"; }else if(x==b){ if((t-(a-y))&1)mov="^<"; else mov="^"; }else if(a-y==b-x){ if((t-(a-y))&1)mov="^"; else mov="^>"; }else{ mov="^>"; } cout<<mov<<endl; rep(i,mov.size()){ if(mov[i]=='>')x++; else if(mov[i]=='<')x--; else if(mov[i]=='^')y++; else if(mov[i]=='v')y--; } t--; } return 0; }