fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. import java.util.Scanner;
  8. public class Main {
  9. static Scanner sc;
  10. static char [][] roads;
  11. static int distance;
  12. static int speed;
  13. Main (){
  14. sc=new Scanner(System.in);
  15. roads=new char[11][60];
  16. distance=17;
  17. speed=5;
  18. }
  19. static void FillRoads(int[]b){
  20.  
  21. for(int i=0;i<11;i++){
  22. for(int j=0;j<60;j++){
  23. if(i==0&&j==0){
  24. roads[i][j]='@';
  25. continue;
  26. }
  27. roads[i][j]='-';
  28. }
  29. }
  30.  
  31. for(int i=0;i<11;i++){
  32. for(int j=0;j<60;j++){
  33. if(j==b[i]-1){
  34. roads[i][j]='$';
  35. if((b[i]-1+distance+i+1)<60){
  36. roads[i][b[i]-1+distance+i+1]='$';
  37. }
  38. if((b[i]-1-distance-i-1)>=0){
  39. roads[i][b[i]-1-distance-i-1]='$';
  40. }
  41. }
  42. }
  43. }
  44.  
  45. for(int i=0;i<11;i++){
  46. for(int j=0;j<60;j++){
  47. if(roads[i][j]=='$'){
  48. if(j-speed-i>0){
  49. roads[i][j-speed-i]='+';
  50. }
  51.  
  52. }
  53. }
  54. }
  55. }
  56.  
  57. static void print(char roads[][]){
  58. for(int i=0;i<11;i++){
  59. for(int j=0;j<60;j++){
  60. System.out.print(roads[i][j]+" ");
  61. }
  62. System.out.println();
  63. }
  64. }
  65.  
  66. static void move(char roads[][]){
  67. for(int i=0;i<11;i++){
  68. for(int j=0;j<60;j++){
  69. if(roads[i][j]=='$'){
  70. roads[i][j]='-';
  71. if(j-speed-i>=0){
  72. roads[i][j-speed-i]='$';
  73. }
  74. }
  75. if(roads[i][j]=='+'){
  76. roads[i][j]='-';
  77. }
  78. }
  79. }
  80.  
  81. for(int i=0;i<11;i++){
  82. for(int j=0;j<60;j++){
  83. if(roads[i][j]=='$'){
  84. if((j+distance+i+1)<60){
  85. roads[i][j+distance+i+1]='$';
  86. }
  87. }
  88. }
  89. }
  90.  
  91. for(int i=0;i<11;i++){
  92. for(int j=0;j<60;j++){
  93. if(roads[i][j]=='$'){
  94. if(j-speed-i>=0){
  95. roads[i][j-speed-i]='+';
  96. }
  97.  
  98. }
  99. }
  100. }
  101. }
  102.  
  103. static void z(int i,char ch[][]){
  104. i+=1;
  105. ch[i-1][0]='-';
  106. ch[i][0]='@';
  107. move(ch);
  108. print(ch);
  109. System.out.println();
  110. }
  111.  
  112. static void q(int i,char ch[][]){
  113. i-=1;
  114. ch[i+1][0]='-';
  115. ch[i][0]='@';
  116. move(ch);
  117. print(ch);
  118. System.out.println();
  119. }
  120.  
  121. static void a(char ch[][]){
  122. move(ch);
  123. print(ch);
  124. System.out.println();
  125. }
  126.  
  127. static void engine1(int i,int k,char roads[][]){
  128. char secondR[][]=new char[11][60];
  129. for(int s=0;s<11;s++){
  130. for(int s1=0;s1<60;s1++){
  131. secondR[s][s1]=roads[s][s1];
  132. }
  133. }
  134.  
  135. do{
  136. ++k;
  137. if(i+1==11){System.out.print(k+" ");break;}
  138. boolean check=false;
  139. boolean check1=false;
  140. // i=0;
  141. if(i==0){
  142. for(int j=0;j<60;j++){
  143. if(secondR[i][j]!='-')
  144. if(secondR[i][j]=='+'&&j!=0){a(secondR);System.out.println(k+" ");engine1(i,k,secondR);break;}
  145. if(secondR[i][j]=='$'||secondR[i][0]=='+')break;
  146. }
  147.  
  148. for(int j=0;j<60;j++){
  149. if(secondR[i+1][j]!='-')
  150. if(secondR[i+1][j]=='+'&&j!=0){z(i,secondR);System.out.println(k+" ");i++;engine1(i,k,secondR);break;}
  151. if(secondR[i+1][j]=='$'||secondR[i+1][0]=='+'){check1=true;break;}
  152. }
  153. check=true;
  154. }
  155. if(check1)break;
  156. if(check)continue;
  157. // i>0;
  158. if(i!=0){
  159. for(int j=0;j<60;j++){
  160. if(secondR[i][j]!='-'){
  161. if(secondR[i][j]=='+'&&j!=0){a(secondR);engine1(i,k,secondR);break;}
  162. if(secondR[i][j]=='$'||secondR[i][0]=='+')break;
  163. }
  164. }
  165. for(int j=0;j<60;j++){
  166. if(secondR[i+1][j]!='-'){
  167. if(secondR[i+1][j]=='+'&&j!=0){z(i,secondR);i++;engine1(i,k,secondR);break;}
  168. if(secondR[i+1][j]=='$'||secondR[i+1][0]=='+')break;
  169. }
  170. }
  171. for(int j=0;j<60;j++){
  172. if(secondR[i-1][j]!='-'){
  173. if(secondR[i-1][j]=='+'&&j!=0){q(i,secondR);i--;engine1(i,k,secondR);break;}
  174. if(secondR[i-1][j]=='$'||secondR[i-1][0]=='+')break;
  175. }
  176. }
  177.  
  178. }
  179. }while(true);
  180. }
  181.  
  182. public static void main(String[] args) {
  183.  
  184. Main FR = new Main();
  185. int a = sc.nextInt();
  186. int[]b = new int[11];
  187. for(int i=0;i<a;i++){
  188. for(int j=0;j<11;j++)
  189. b[j]=sc.nextInt();
  190.  
  191. System.out.println();
  192. FillRoads(b);
  193. print(roads);
  194. System.out.println();
  195. engine1(0,0,roads);
  196. System.out.println();
  197.  
  198. }
  199. }
  200. }
Time limit exceeded #stdin #stdout 5s 321344KB
stdin
1
13 18 18 5 1 10 4 13 21 1 19
stdout
@ - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - 
- - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
$ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - - 
$ - - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
- - - + - - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - - $ - - - - - - - - - - - - - 

@ - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - - - - - 
- - - - - + - - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - 
- - - + - - - - - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - 
- - - - - - - - - + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ 
- - - - + - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - 
- - - - - - - - - - - - + - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - - - - - - - - - - - - - - 
- - - - - + - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - 
$ - - - - - - - - - - - - + - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - $ - - - - - - - - - 
- - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - $ 
- - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - 
- - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - - $ 

1 
@ - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - 
- - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - - - - - 
- - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - - - - - 
- + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - 
- - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - 
- - + - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - 
- - - - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - 
- + - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - - 
- - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - 
- + - - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - - $ - - - - - - - - - - - - - - - 

2 
- - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - - - - - - - - - - + - - - - $ - - - 
@ - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - + - - - - - $ - - - - - - - - - - - - - - - - 
- - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - + - - - - - - $ - - - - - - - - - - - - - - - - 
- + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - - - - - + - - - - - - - $ - - - - - - - - 
- - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - $ - - - - - - - - - - - 
- - + - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - $ - 
- - - - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - $ - - - - - - 
- + - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - $ - - - - - - - - - - - - - - - - - - - - - 
- - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - $ - - - - - - - - - - - - - 
- - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - $ - - - - - - 
- + - - - - - - - - - - - - - - $ - - - - - - - - - - - - + - - - - - - - - - - - - - - $ - - - - - - - - - - - - - - - 

1