fork download
  1. /* paiza POH! vol.2
  2.  *
  3.  * test case generator
  4.  *
  5.  */
  6.  
  7. import java.util.*;
  8. import java.lang.*;
  9. import java.io.*;
  10.  
  11. class Generator
  12. {
  13. static boolean byargs = true;
  14. static boolean bystdin = false;
  15. static boolean randomsize = false;
  16. static boolean randomwidget = true;
  17. static int H = 100;
  18. static int W = 100;
  19. static int N = 1000;
  20. static int P = 10;
  21. static int[] vals = {H, W, N, P};
  22.  
  23.  
  24. public static void main (String[] args) throws java.lang.Exception
  25. {
  26.  
  27. Random rand = new Random();
  28.  
  29. checkArgs(args);
  30.  
  31. if (byargs)
  32. {
  33. H = Math.max(1, Math.min(300, vals[0]));
  34. W = Math.max(1, Math.min(300, vals[1]));
  35. N = Math.max(1, vals[2]);
  36. P = Math.max(0, Math.min(100, vals[3]));
  37. }
  38.  
  39. if (bystdin)
  40. {
  41. Scanner sc = new Scanner(System.in);
  42. if (sc.hasNextInt()) H = Math.max(1, Math.min(300, sc.nextInt()));
  43. if (sc.hasNextInt()) W = Math.max(1, Math.min(300, sc.nextInt()));
  44. if (sc.hasNextInt()) N = Math.max(1, sc.nextInt());
  45. if (sc.hasNextInt()) P = Math.max(0, Math.min(100, sc.nextInt()));
  46. }
  47.  
  48. if (randomsize)
  49. {
  50. H = rand.nextInt(H) + 1;
  51. W = rand.nextInt(W) + 1;
  52. N = rand.nextInt(H * W) + 1;
  53. }
  54.  
  55. N = Math.min(H * W, N);
  56.  
  57. System.out.println(H + " " + W);
  58.  
  59. for (int i = 0; i < H; i++)
  60. {
  61. for (int j = 0; j < W; j++)
  62. {
  63. if (rand.nextInt(100) < P)
  64. {
  65. System.out.print('1');
  66. }
  67. else
  68. {
  69. System.out.print('0');
  70. }
  71. }
  72. System.out.println();
  73. }
  74.  
  75. int s = 1;
  76. int t = 1;
  77.  
  78. System.out.println(N);
  79. for (int i = 0; i < N; i++)
  80. {
  81. if (randomwidget)
  82. {
  83. if (rand.nextInt(100) < 10)
  84. {
  85. s = rand.nextInt(300) + 1;
  86. t = rand.nextInt(300) + 1;
  87. }
  88. else
  89. {
  90. int d = rand.nextInt(7) + 3;
  91. s = rand.nextInt(H) / d + 1;
  92. t = rand.nextInt(W) / d + 1;
  93. }
  94. System.out.println(s + " " + t);
  95. }
  96. else
  97. {
  98. s = i / W + 1;
  99. t = i % W + 1;
  100. System.out.println(s + " " + t);
  101. }
  102. }
  103. }
  104.  
  105. static void checkArgs(String[] args)
  106. {
  107. for (int i = 0, j = 0; i < args.length; i++)
  108. {
  109. if ("-h".equals(args[i]))
  110. {
  111. if (i + 1 < args.length && args[i + 1].matches("^\\d{1,4}$"))
  112. {
  113. H = Math.max(1, Math.min(300, Integer.parseInt(args[++i])));
  114. vals[0] = H;
  115. }
  116. }
  117. else if ("-w".equals(args[i]))
  118. {
  119. if (i + 1 < args.length && args[i + 1].matches("^\\d{1,4}$"))
  120. {
  121. W = Math.max(1, Math.min(300, Integer.parseInt(args[++i])));
  122. vals[1] = W;
  123. }
  124. }
  125. else if ("-n".equals(args[i]))
  126. {
  127. if (i + 1 < args.length && args[i + 1].matches("^\\d{1,6}$"))
  128. {
  129. N = Math.max(1, Integer.parseInt(args[++i]));
  130. vals[2] = N;
  131. }
  132. }
  133. else if ("-p".equals(args[i]))
  134. {
  135. if (i + 1 < args.length && args[i + 1].matches("^\\d{1,4}$"))
  136. {
  137. P = Math.max(0, Math.min(100, Integer.parseInt(args[++i])));
  138. vals[3] = P;
  139. }
  140. }
  141. else if ("-i".equals(args[i]))
  142. {
  143. bystdin = true;
  144. }
  145. else if ("-i-".equals(args[i]))
  146. {
  147. bystdin = false;
  148. }
  149. else if ("-a".equals(args[i]))
  150. {
  151. byargs = true;
  152. }
  153. else if ("-a-".equals(args[i]))
  154. {
  155. byargs = false;
  156. }
  157. else if ("-s".equals(args[i]))
  158. {
  159. randomsize = true;
  160. }
  161. else if ("-s-".equals(args[i]))
  162. {
  163. randomsize = false;
  164. }
  165. else if ("-r".equals(args[i]))
  166. {
  167. randomwidget = true;
  168. }
  169. else if ("-r-".equals(args[i]))
  170. {
  171. randomwidget = false;
  172. }
  173. else if (args[i].matches("^\\d{1,6}$"))
  174. {
  175. if (j < vals.length)
  176. {
  177. vals[j++] = Integer.parseInt(args[i]);
  178. }
  179. }
  180. }
  181. }
  182. }
Success #stdin #stdout 0.18s 380480KB
stdin
Standard input is empty
stdout
100 100
0000000000000000001000000000001001011000100000000001000000000000000000100000001001010000000100000000
0100100010000000000010000101000000000000000000010000000000000000000010000000000000000000000000000000
0000010000000000000110000000010100000010000000000010000000000001000000000000100000110000000000100100
1000000000001000001000000001000000000000010100000000000000000000000000000000000000000000000101000000
0100000000000000000000100000000100000010000000000000000000000000000000000110100000000010000000000000
0100100000101000000000100000010000000010001100000000000000011100000000000000000000100000000100000000
0000000000001001000001000001000100001000000000000000001000000000100000101000000000000000000000000110
0000000000000000000000000000010000010000100000000000000000000000000001000000000000000100000000000000
0010000000000000000000001000100000000100001000100000000000000010001000001000100100000000000000000000
0000000000000000001000100000100000010000000000000000000001000000000000000000010000001000000000000000
0000000101000001000000010001000000110100000001001000100000000001000000001000000000000010000000000000
0100100000001000100000001101100000000000001000000000000000000001000000000010010010000000000000000000
0000100000000100100000000000000010000000000000000000000000000000000000001000000000000000000000101000
0100000000000000000000000000001000000001100000000000000110100010000100000000000000000000000010100000
0000000000100000000000100010000000100000000000000000000000100000000010000000000001000000001010000000
0000000000000000000000000000000001000000000001010000000000000100000000000000100010010000000000010000
0000000000000000000000000100000000010100001000000000000000000000100000000000100000100001000000000000
0000000000000000100100000000100000000000000100001010000000000000000000000000000000000000000000000100
0000000000001000000000100000000000000000000001000000000000001001010000000000000000010000000000100101
0000000000001000000000000000000000100000010000000100000000000101010000000100011000000000000000000000
0000000000000000010000000000000000000110000000110000000000000000000000000001000000000000100000000000
0000000000000000000000000010110000000000000000001000000000011000000000010000000000000000000001010000
0001010000100001100010010000000000000001000001000000100000000000010000000000000000000000000000010000
1000000010100000000100100000100000000000000001000001000000000000000000000000000001000010000000000000
0000000000000000100110010000000100000000100010000011000000000100000000000100000000000000001001010100
0110001100010001000000000000000000011000100000000010000010000000000000000000000000000001000000000000
0000000100100000000000000000100000000010000000000000001101100000000000000001000100000000101000000000
0001000001000000000000000000000100000000000000001000000000000000100000000001000000000000000000000000
0000000000000000000000010000000000000000000000000110100000000000001101001000010000000000100000000000
0000000100000000001010001101000100010000000000010000000001000000000000000000000000000010000101000000
0000000000000000000100000001010100000100001001000000001000001100010000010000000000000000000000100000
0000000000000000000000000001001100001000000000000000000000010000000000000000000000001000010000100000
0001000000010100000000000000000000000010000100000010001000000100000001000000000000000000000000000000
0000000001001000000000000001000000010000000000000000100000000010010000000000000000000000000000000000
0000000100000000000000101000000010000000000000100001000001010000000001100000000000000000001000000000
0000000100000000101000000000000000100001000000010000000100001000000000001000000000000000000001000000
0100000001100100000000101101000001000001000000010000000000000000000100001000000000001000100101000000
0000000000000000000010000100000010000000000000000001000000011000010000000000000000000000000010000000
0001100000000000000000000000000000000000000000100000000100000011000000101000000011001000000000000100
0000000010010010000000000100000000000000010010000001000000001000000000010001010100000000001000000000
0000010000000000001000000000000000000000000000001000000000000000000000000000000000000010000000000000
0000000000100000000100000000000100000000100000001010000001000001110000010000100000100000000000000000
0010000000000000000000000110000000010000010000000000000010101000000000000000100100000000000010000000
0000000100010000000001000010000000000000001000100010000000000000000000000000010000001000000000000100
1000001010010100000010000000010010100000000000001000000000000000100000000000001010000001000000000000
0001010100000000000000000000000000001110000010000000000000000000000000000000000000000000000001010000
0000001000001000000000000001000000000001000000100000100110000010000100000010000010000000000000000000
0010001000010000001100000000100000000010001000000010000000000000000000000100000100000000000000000100
0010000000000000000000000000000000000000000000100101000000000000000000000000000000101000001010000000
0100001000010010000010100000000000000000000000000000100000000100000100000000000000000000100000000000
0010000000001000000000000000001000000000000100000000001010000000001100000000000000000010010000000010
0010000000000000100010000100000000000010000000010000000000101000001000000000001100000000000000100000
0100000000000000000000000000100000010001010000000010000000000000010010000000000000000000101000000000
0000000000000000000000001000010000000000000000010000000000010000000000000000000000100000000000000000
0100000000100010000000000000100000101000000000000000000000000010000000101000001000010000000000000100
0001000010010000111000000000000000001000000000001000000100000000000000000000000000000000000000100000
0000000100000000000110001000001000000000000001000001000000010000000000010010100000000000000100000000
1000000000000000001000000000000000000010110001000000001100000100000110100000001000000010010000000000
0000010000010010010000001000000000001010000000000000000000000000010000000000100000000001000000000000
0000000000001000000100000000011000000000000001000100100000010100000000000100100010000001000001010000
0100101011000000001000000000000000000101000010000000000000000010101000100100000001010011001000000000
0000000000001000000000000100000000000000100000000010000000001000001000000001000000000000000100000000
0001000001001000000010100000000000000000000000000000100000000001010000100000000000000000000000101000
0000001000100000000000100000001000000010000000000000000000010000000000001000001100000000000100000010
0000000000000010000000000000010110000000000000000000100000000010000000000000000000000010100101100001
0000000010010000000000001000001101000000000000100000000000000010000000000000000000000000100000000000
0000000100000010000000000000000000000100010001000000000000000000010010000000000000000000000110000100
0100000010010000000000000000000100000001000000001000000000000000010000000000000000010100000000000000
1000000000100000001001000100100001000000000000000001000000000001000000000000000000100000000000000011
0000000100000000000000010000010000000000001000000010000000000000000000000010001000000001000000000000
0001001000000000000100000000000000001100001000000000000000010000000000000000000100000000000000000000
0000000000010000010000010000000001000000000000000000010000000100100000100000000000000000000000000000
0000000010000000010000000000000000000010000000000000110000000000000000100000000001000000000000011000
1100100000000100000000000000000000000100000000000001000000011000000000001000000000000000101000000000
1000000100000000000010010000000001000000010000010000000000000000000001000100001001000000000010000000
1000100000000000000001000000010000000000000000000000000000000000000000000000000010010000001000010000
0000000000010000100100000000000001000000100100000010000000010010000000100010000000000001000010000000
0100000000000000000000100000000000000000000000000000000000000000110000100000000000010000000000000000
0000000011000000000000000000000001000100010000001000000000000000000000001000100100100000001000000010
0000000000000000000000010000001000000000001101001000001000000000000000000000000000000000010000000010
0000000000000000000000000010000100000000000000100000000000000000000100000000000000000010010010000000
1000000001000000000000100000000000000000010010000010001000000000000010000000010010001000100000001000
0000000000000000011001000100000000100000000100000000000001000000000000000000000000000000000000000001
1000100010000010000000000000001000000000000100000000000000001001000000100000000000000010001000000000
0001001000000000010000000000100000110000000000000001010001100000000000000010000000000100010000000000
0000000000001000010100001000000010100000000000000000000000000000000000000000000000010000000010000000
0000000000000000000010000100000000000000100000000000000000000000000000000000010001000100000000000000
0010000010100010000000000100000000000000000000000000000000000001000000000000000100000100000000000000
0000000000000000000000000000000000000000000000000000000000001000000000000000010000000000000100000000
0000000100000000001000001000000000001000000000000000010010000000000000100000000000100000000110000000
0010000000000100100000000000000000000000000000000000000000010001000000100000000000000000000000010000
0000000000000000010000000000000000000000000100010100000000010000000000000000100010000000000001011000
0000100000010000001000100000000001010000000000000000000010000000000000000000000100000000000010000000
1000001000000000100000001000000001000000000001000100000000000000000000000000100000010000000000000000
0000101000000010100000000010000010000001000000000100100000000000000000000000000010000011000000000000
1010000000000001000000000001000000000000001101000000000000000000000000000001000000100000000000010000
0000001000000000010000000010000000000000000000000000000000000001000010000000000100000000000000000000
1000000010000000000000000000100000000000000000000000000010100000000000000000000010000000000001000000
0100001000000000000100000000000000000100000000000100100000000001000000000000000000001000000100000000
1001010000000000000000000000000000000000001000000000000000000000100000100000000000000000000000000010
1000
8 13
21 11
14 1
1 13
2 29
83 129
10 4
8 15
26 9
1 3
14 9
5 5
9 17
24 15
18 15
5 26
15 10
7 13
19 3
6 9
6 5
221 137
11 2
15 8
7 14
26 11
5 6
5 33
7 13
2 6
12 2
15 23
20 3
9 13
11 10
13 5
4 4
8 23
3 5
2 2
3 6
1 1
23 8
11 19
7 11
9 4
5 5
3 2
6 7
13 8
22 17
12 9
8 1
9 6
4 7
3 13
14 9
13 7
7 11
1 18
4 18
2 10
3 1
1 13
8 6
1 11
5 17
1 10
8 9
152 97
4 13
16 17
6 18
4 15
10 12
22 4
4 6
7 13
18 2
17 7
256 24
10 1
20 17
10 6
19 18
5 12
2 3
3 2
11 9
6 3
13 15
6 9
9 5
6 5
8 6
15 15
13 13
22 8
275 200
3 10
18 22
29 34
1 6
1 12
175 249
11 10
1 2
13 17
2 6
11 18
7 10
4 4
14 1
4 4
13 7
9 14
14 32
11 15
12 5
2 13
39 51
33 20
217 116
16 9
5 12
15 8
18 24
269 76
10 3
15 6
8 4
7 7
5 7
13 6
4 14
13 17
9 3
6 11
30 8
12 8
32 7
11 6
187 22
8 6
128 77
11 68
11 7
4 6
1 6
64 127
142 284
112 278
6 11
8 10
10 6
4 7
7 1
17 16
11 11
168 92
26 21
15 14
10 7
16 12
4 3
4 5
3 6
3 19
15 16
10 27
30 8
8 5
9 9
26 21
5 10
10 9
7 18
7 33
10 3
34 22
136 7
3 2
4 6
15 4
3 10
6 13
2 19
3 9
179 23
24 33
25 252
14 19
7 15
16 3
11 9
2 11
9 6
17 3
17 5
12 6
8 10
11 22
5 9
20 16
11 14
16 1
6 1
14 12
9 10
285 19
3 14
11 5
16 13
25 7
299 39
11 2
10 12
9 5
23 20
17 18
4 17
23 14
7 2
15 12
146 260
9 4
10 30
4 9
10 2
17 24
5 9
16 9
8 1
30 17
3 3
13 2
8 4
18 9
8 7
4 10
218 149
15 1
8 13
25 7
31 14
4 6
18 19
17 2
11 1
8 12
9 10
13 33
8 6
2 1
16 4
5 11
188 264
12 5
18 16
131 21
11 10
14 1
17 15
9 11
21 2
11 5
18 17
11 24
16 1
204 158
9 13
7 14
20 11
10 6
19 16
17 2
5 1
2 4
16 1
60 192
17 5
8 4
6 30
7 14
2 31
16 33
92 248
15 2
13 9
15 14
5 24
2 9
20 17
7 6
12 8
12 162
219 71
5 9
3 7
3 4
4 4
3 13
20 11
5 6
3 6
2 6
4 11
15 13
14 6
5 4
7 11
13 5
133 199
29 27
12 7
8 1
17 2
4 4
5 22
4 12
10 3
2 2
15 15
6 10
15 16
20 30
14 8
12 3
2 14
21 29
12 1
26 24
8 32
238 90
2 13
14 2
4 9
4 5
4 2
7 5
187 216
2 20
10 11
5 10
1 11
6 5
18 11
15 10
11 6
7 11
6 6
13 12
17 29
14 6
5 7
22 17
16 21
6 10
2 15
1 13
6 3
6 7
162 225
9 12
23 2
17 4
17 125
16 10
16 10
24 7
5 14
2 11
6 1
1 13
18 19
18 11
141 299
21 20
3 14
3 1
12 22
13 3
1 5
6 7
277 144
2 11
4 9
26 19
3 5
6 3
2 3
9 8
6 19
14 3
16 23
23 12
4 4
6 3
7 7
14 4
11 5
2 14
14 20
49 143
2 1
3 17
248 289
12 9
1 3
5 9
7 18
7 30
13 18
4 8
12 14
8 23
24 8
9 24
6 9
14 2
3 9
13 19
241 82
14 17
34 26
3 17
35 204
4 32
9 6
6 3
10 6
3 6
17 8
9 30
7 11
12 16
17 11
26 7
8 2
10 3
201 55
27 2
9 6
1 11
10 11
28 10
11 6
11 4
20 22
56 99
1 3
202 168
24 14
10 6
3 5
23 9
4 5
267 256
20 22
11 33
24 26
32 17
292 11
2 13
27 16
11 11
10 12
3 2
17 11
7 254
4 4
15 3
5 8
4 16
32 33
10 5
15 7
1 3
9 2
10 3
5 3
1 2
3 1
11 10
2 8
5 10
8 1
9 9
200 182
10 8
6 12
26 25
12 16
6 6
116 294
28 25
11 12
33 12
6 9
13 6
23 267
15 1
4 18
7 2
5 25
164 37
9 9
5 12
1 3
14 12
68 13
15 2
12 12
18 22
1 8
3 13
1 9
20 17
7 1
6 13
3 4
31 273
5 2
11 11
8 1
9 6
7 10
223 194
32 15
6 8
12 9
1 3
8 14
5 5
198 127
28 33
7 8
11 11
22 9
20 2
25 15
9 5
4 5
14 1
7 6
11 1
11 11
15 11
6 13
13 17
20 20
5 6
14 8
8 14
18 17
206 166
20 33
105 3
4 15
14 25
11 14
8 16
14 3
4 15
9 24
18 4
2 2
4 9
19 9
4 3
5 2
2 5
166 145
20 5
12 14
14 3
9 16
4 5
12 9
10 20
14 7
3 5
33 9
8 5
10 8
18 17
7 4
1 12
18 18
19 19
5 4
8 5
18 19
18 22
22 7
4 3
229 207
13 2
5 1
28 28
6 8
4 8
14 30
10 11
7 11
171 189
7 25
9 9
2 14
3 17
12 1
8 7
128 127
155 286
15 4
10 9
152 187
24 8
3 11
16 3
12 13
137 242
8 11
20 6
12 9
11 107
16 5
1 10
11 15
184 70
30 14
8 8
14 19
198 123
21 10
12 5
17 2
3 9
1 10
12 2
9 3
10 3
12 6
5 14
30 9
10 8
7 6
7 2
9 12
40 105
284 87
10 29
8 1
17 6
1 5
28 24
2 11
8 167
5 15
5 6
6 19
6 6
17 16
28 2
9 4
3 10
8 10
31 8
13 9
2 3
16 13
15 24
8 4
23 15
8 4
11 8
8 4
15 5
18 10
1 15
5 2
7 11
10 6
14 14
4 9
1 3
7 4
1 1
7 16
106 222
1 13
28 5
8 6
21 21
1 11
13 6
6 23
11 5
21 32
13 8
4 11
11 6
113 78
1 3
22 20
2 18
3 8
14 1
14 16
11 11
8 10
2 4
210 138
11 11
6 25
7 9
1 9
26 12
2 13
6 1
17 3
3 2
12 5
2 12
6 3
3 18
12 13
9 13
216 138
4 8
7 11
10 13
5 6
10 3
6 10
18 16
4 10
32 19
14 17
5 17
4 8
9 2
4 1
5 13
12 11
2 11
13 3
5 1
2 8
13 5
32 16
18 25
11 11
26 10
6 8
3 12
11 12
7 14
10 2
125 85
6 3
5 1
4 2
8 5
10 10
14 11
25 18
10 11
12 9
1 8
1 10
9 7
3 9
3 4
22 22
5 11
21 18
1 12
22 11
16 2
7 3
4 10
4 13
15 11
12 31
11 5
30 6
13 3
2 1
9 7
23 20
1 3
14 4
25 9
10 5
7 6
82 193
1 1
20 2
8 6
214 266
10 2
4 7
2 3
12 9
14 11
20 17
25 12
1 5
11 3
13 10
3 6
1 11
11 11
3 5
21 30
4 2
3 4
3 1
14 20
6 15
12 4
8 2
20 2
25 8
18 14
15 12
22 1
28 7
10 4
8 15
2 16
11 11
10 4
2 4
2 9
5 1
60 198
3 7
12 8
2 2
5 14
12 7
5 10
111 33
13 17
24 6
20 6
11 7
13 6
1 9
6 30
8 12
166 62
23 6
1 6
2 2
7 11
7 7
5 10
2 18
11 7
9 11
13 14
25 13
28 178
32 2
2 4
7 11
10 8
4 13
16 14
2 9
8 17
11 10
15 8
5 11
7 1
8 11
2 22
8 4
18 4
12 3
1 4
3 10
9 16
4 9
2 7
9 25
118 292
6 12
65 162
186 47
288 246
25 2
7 7
13 9
13 12
15 16
3 5
1 7
88 111
4 4
18 8
4 3
4 1
18 31
15 10
20 16
7 10
11 18
4 4
6 12
10 10
10 11
160 178
23 18
14 16
9 3
11 10
2 8
3 2
25 4
152 133
77 248
12 5
10 9
6 19
4 68
228 30
26 24
11 4
8 11
10 6
14 23
2 5
163 160
9 5
3 3
24 14
4 15
10 10
6 4
9 9
2 27
1 5
3 5
8 9
11 12
188 234
4 2
11 29
8 11
16 23
39 86
12 10
4 12
7 4
15 3
247 108
8 5
9 1
15 18
4 10
7 11
10 6
9 2
12 8
2 7
10 11
4 5
2 6
2 4
2 6
11 1
4 1
6 6
10 11
8 8
1 9
6 21
233 15
12 3
3 10
9 10
20 15
19 11
3 4
14 6
23 34
13 19
8 15
13 233
5 20
8 13
3 19
12 33
17 9
11 6
3 4