Source code for submission s827

Main.java

  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.  
  5. static Scanner sc = new Scanner(System.in);
  6. public static void main(String[] args) {
  7. String line;
  8. while(sc.hasNext()){ //vnejsi obal
  9. int cas=0;
  10. line = sc.nextLine();
  11. String[] pole=line.split(" ");
  12. int delkaKlady=Integer.parseInt(pole[0]);
  13. int pocetMravencu=Integer.parseInt(pole[1]);
  14.  
  15. char mravenci[] = new char[delkaKlady+1];
  16. for(int i=0;i<mravenci.length;i++){
  17. mravenci[i]='N';
  18. }
  19.  
  20. for(int i=0;i<pocetMravencu;i++){ //jednotlivy mravenci
  21. line=sc.nextLine();
  22. String[] poleM=line.split(" ");
  23. int index=Integer.parseInt(poleM[0]);
  24. char znak=poleM[1].charAt(0);
  25. mravenci[index]=znak;
  26. }
  27.  
  28. boolean nalezKraj=false;
  29. int zleva=0;
  30. int zprava=delkaKlady;
  31. while(!nalezKraj){
  32. if(mravenci[zleva]=='R'){
  33. cas=delkaKlady-zleva;
  34. nalezKraj=true;
  35. }else if(mravenci[zprava]=='L'){
  36. cas=zprava;
  37. nalezKraj=true;
  38. }else{
  39. zleva++;
  40. zprava--;
  41. }
  42. if(nalezKraj){
  43. System.out.print("The last ant will fall down in "+cas+" seconds - started at ");
  44. }
  45.  
  46. }
  47.  
  48. int odStreduDoleva;
  49. int odStreduDoprava;
  50.  
  51. boolean konec=false;
  52. if((delkaKlady%2)==0){
  53. odStreduDoleva=delkaKlady/2;
  54. odStreduDoprava=delkaKlady/2;
  55.  
  56.  
  57. while(!konec){
  58. // System.out.println("odsdoL "+odStreduDoleva+" odsdoP "+odStreduDoprava); //kontrolni vypis
  59. if(odStreduDoleva==odStreduDoprava && !(mravenci[odStreduDoleva]=='N')){
  60. System.out.println(""+odStreduDoleva+".");
  61. }else{
  62. if(mravenci[odStreduDoleva]=='N' && mravenci[odStreduDoprava]=='N'){
  63. odStreduDoleva--;
  64. odStreduDoprava++;
  65. }else if(mravenci[odStreduDoleva]=='N' && !(mravenci[odStreduDoprava]=='N')){
  66. System.out.println(odStreduDoprava+".");
  67. konec=true;
  68. }else if(mravenci[odStreduDoprava]=='N' && !(mravenci[odStreduDoleva]=='N')){
  69. System.out.println(odStreduDoleva+".");
  70. konec=true;
  71. }else{
  72. if(mravenci[odStreduDoleva]!=mravenci[odStreduDoprava]){
  73. System.out.println(odStreduDoleva+" and "+odStreduDoprava+".");
  74. konec=true;
  75. }else{
  76. if(odStreduDoleva=='R'){
  77. System.out.println(odStreduDoleva+".");
  78. konec=true;
  79. }else{
  80. System.out.println(odStreduDoprava+".");
  81. konec=true;
  82. }
  83. }
  84. }
  85. }
  86. }
  87.  
  88. }else{
  89. odStreduDoleva=delkaKlady/2;
  90. odStreduDoprava=delkaKlady/2+1;
  91.  
  92. while(!konec){
  93. // System.out.println("odsdoL "+odStreduDoleva+" odsdoP "+odStreduDoprava); //kontrolni vypis
  94.  
  95. if(mravenci[odStreduDoleva]=='N' && mravenci[odStreduDoprava]=='N'){
  96. odStreduDoleva--;
  97. odStreduDoprava++;
  98. }else if(mravenci[odStreduDoleva]=='N' && !(mravenci[odStreduDoprava]=='N')){
  99. System.out.println(odStreduDoprava+".");
  100. konec=true;
  101. }else if(mravenci[odStreduDoprava]=='N' && !(mravenci[odStreduDoleva]=='N')){
  102. System.out.println(odStreduDoleva+".");
  103. konec=true;
  104. }else{
  105. if(mravenci[odStreduDoleva]!=mravenci[odStreduDoprava]){
  106. System.out.println(odStreduDoleva+" and "+odStreduDoprava+".");
  107. konec=true;
  108. }else{
  109. if(odStreduDoleva=='R'){
  110. System.out.println(odStreduDoleva+".");
  111. konec=true;
  112. }else{
  113. System.out.println(odStreduDoprava+".");
  114. konec=true;
  115. }
  116. }
  117. }
  118. }
  119. }
  120. }
  121. }
  122. }
  123.  
  124.  
  125.