fork download
  1. package codeforces.round406;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8.  
  9. public class Question3 {
  10.  
  11. int n, s1, s2;
  12. Map<Integer, Integer[]> rmap = new HashMap<>();
  13. Map<Integer, Integer[]> jumpmap = new HashMap<>();
  14. Map<Integer, Integer[]> visitedmap = new HashMap<>();
  15.  
  16. public static void main(String[] args) throws IOException {
  17.  
  18. String input = r.readLine();
  19. Question3 q = new Question3();
  20. q.n=Integer.parseInt(input);
  21.  
  22. input = r.readLine();
  23. String [] inp = input.split(" ");
  24.  
  25. q.s1= Integer.parseInt(inp[0]);
  26. int i;
  27. Integer [] arr = new Integer[q.s1+1];
  28. for(i=1;i<=q.s1;i++){
  29. arr[i]= Integer.parseInt(inp[i]);
  30. }
  31.  
  32. q.jumpmap.put(1, arr);
  33.  
  34. input = r.readLine();
  35. inp = input.split(" ");
  36.  
  37. q.s2= Integer.parseInt(inp[0]);
  38. arr = new Integer[q.s2+1];
  39. for(i=1;i<=q.s2;i++){
  40. arr[i]= Integer.parseInt(inp[i]);
  41. }
  42.  
  43. q.jumpmap.put(2, arr);
  44.  
  45. Integer [] rarr1 = new Integer [q.n+1];
  46. Integer [] rarr2 = new Integer [q.n+1];
  47. Integer [] visarr1 = new Integer [q.n+1];
  48. Integer [] visarr2 = new Integer [q.n+1];
  49. for(i=0;i<=q.n;i++){
  50. rarr1[i]=-2;
  51. rarr2[i]=-2;
  52. }
  53.  
  54. q.rmap.put(1, rarr1);
  55. q.rmap.put(2, rarr2);
  56.  
  57. visarr1 = new Integer [q.n+1];
  58. visarr2 = new Integer [q.n+1];
  59.  
  60. int j;
  61. for(j=0;j<=q.n;j++){
  62. visarr1[j]=0;
  63. visarr2[j]=0;
  64. }
  65.  
  66. q.visitedmap.put(1, visarr1);
  67. q.visitedmap.put(2, visarr2);
  68.  
  69. for(i=1;i<=q.n;i++){
  70. if (q.rmap.get(1)[i].equals(-2)){
  71. q.process(1,i);
  72. }
  73. }
  74.  
  75. for(i=1;i<=q.n;i++){
  76. if (q.rmap.get(2)[i].equals(-2))
  77. q.process(2,i);
  78. }
  79.  
  80. for(i=2;i<=q.n;i++)
  81. if (q.rmap.get(1)[i].equals(1))
  82. System.out.print("Win"+" ");
  83. else if (q.rmap.get(1)[i].equals(-1))
  84. System.out.print("Lose"+" ");
  85. else
  86. System.out.print("Loop"+" ");
  87.  
  88. System.out.println();
  89.  
  90. for(i=2;i<=q.n;i++)
  91. if (q.rmap.get(2)[i].equals(1))
  92. System.out.print("Win"+" ");
  93. else if (q.rmap.get(2)[i].equals(-1))
  94. System.out.print("Lose"+" ");
  95. else
  96. System.out.print("Loop"+" ");
  97. }
  98.  
  99. private int process(int person, int position) {
  100.  
  101. if (position>n)
  102. position=position%n;
  103. if (position==1)
  104. return -1;
  105.  
  106. if (visitedmap.get(person)[position].compareTo(0)==1)
  107. return 0;
  108.  
  109.  
  110.  
  111. if (!rmap.get(person)[position].equals(-2))
  112. return rmap.get(person)[position];
  113.  
  114. visitedmap.get(person)[position]++;
  115.  
  116. Integer jarr [] = jumpmap.get(person);
  117.  
  118. int size=0;
  119. if (person==1)
  120. size=s1;
  121. else
  122. size=s2;
  123.  
  124. int i;
  125.  
  126. int ones=0;
  127. int minus=0;
  128.  
  129. int result=0;
  130. for(i=1;i<=size;i++){
  131. if (person==1)
  132. result=process(2,position+jarr[i]);
  133. else
  134. result=process(1,position+jarr[i]);
  135. if (result==-1){
  136. minus++;
  137. break;
  138. }
  139. if (result==1)
  140. ones++;
  141. }
  142.  
  143.  
  144. int ans=0;
  145. if (minus!=0)
  146. ans= 1;
  147. else if (ones==size)
  148. ans= -1;
  149.  
  150.  
  151. visitedmap.get(person)[position]--;
  152. if (ans!=0){
  153. rmap.get(person)[position]=ans;
  154. }
  155. return ans;
  156. }
  157. }
  158.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:9: error: class Question3 is public, should be declared in a file named Question3.java
public class Question3 {
       ^
1 error
stdout
Standard output is empty