Submission #00117
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #include<bits/stdc++.h> using namespace std; main(){ int t,h,w,n,x,y,v,px[4]={0,1,0,-1},py[4]={-1,0,1,0},nx,ny; char mp[20][20],s[101]; cin>>t; for ( int l=0;l<t;l++){ cin>>h>>w; for ( int i=0;i<h;i++){ for ( int j=0;j<w;j++){ cin>>mp[i][j]; if (mp[i][j]== '^' || mp[i][j]== '>' || mp[i][j]== 'v' || mp[i][j]== '<' ){ y=i; x=j; if (mp[i][j]== '^' )v=0; else if (mp[i][j]== '>' )v=1; else if (mp[i][j]== 'v' )v=2; else v=3; mp[i][j]= '.' ; } } } cin>>n>>s; for ( int i=0;i<n;i++){ if (s[i]== 'U' ){ v=0; ny=y-1; if (ny>=0){ if (mp[ny][x]== '.' )y=ny; } } else if (s[i]== 'D' ){ v=2; ny=y+1; if (ny<h){ if (mp[ny][x]== '.' )y=ny; } } else if (s[i]== 'R' ){ v=1; nx=x+1; if (nx<w){ if (mp[y][nx]== '.' )x=nx; } } else if (s[i]== 'L' ){ v=3; nx=x-1; if (nx>=0){ if (mp[y][nx]== '.' )x=nx; } } else { nx=x+px[v]; ny=y+py[v]; while (nx>=0 && nx<w && ny>=0 && ny<h){ if (mp[ny][nx]== '*' ){ mp[ny][nx]= '.' ; break ; } else if (mp[ny][nx]== '#' ) break ; nx+=px[v]; ny+=py[v]; } } } if (v==0)mp[y][x]= '^' ; else if (v==1)mp[y][x]= '>' ; else if (v==2)mp[y][x]= 'v' ; else mp[y][x]= '<' ; for ( int i=0;i<h;i++){ for ( int j=0;j<w;j++){ cout<<mp[i][j]; } cout<<endl; } if (l!=t-1)cout<<endl; } } |
ステータス
項目 | データ |
---|---|
問題 | 0010 - バトルタウン |
ユーザー名 | ei1516 |
投稿日時 | 2017-03-30 14:37:22 |
言語 | C++11 |
状態 | Accepted |
得点 | 20 |
ソースコード長 | 1428 Byte |
最大実行時間 | 18 ms |
最大メモリ使用量 | 480 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 20 / 20 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
tank.in | AC | 18 ms | 480 KB |
1
|