fork download
  1. import java.util.*;
  2. public class Main {
  3. private static final int W = 5;
  4. public static void main(String[] args) {
  5. final Scanner sc = new Scanner(System.in);
  6. while(sc.hasNext()) {
  7. final int H = sc.nextInt();
  8. if(H == 0)
  9. return;
  10. final int[][] css = new int[H][W];
  11. for(int i = 0; i < H; i++)
  12. for(int j = 0; j < W; j++)
  13. css[i][j] = sc.nextInt();
  14. int ans = 0;
  15. boolean flag = true;
  16. while(flag) {
  17. System.err.println("@@@");
  18. for(int i = 0; i < H; i++) {
  19. for(int j = 0; j < W; j++)
  20. System.err.print(css[i][j]);
  21. System.err.println();
  22. }
  23. flag = false;
  24. for(int i = 0; i < H; i++)
  25. for(int j = 0; j < W - 2; j++)
  26. if(css[i][j] > 0 && css[i][j+1] == css[i][j] && css[i][j+2] == css[i][j]){
  27. final int c = css[i][j];
  28. css[i][j] = css[i][j + 1] = css[i][j + 2] = 0;
  29. ans += 3 * c;
  30. j += 3;
  31. flag = true;
  32. while(j < W && css[i][j] == c) {
  33. css[i][j] = 0;
  34. ans += c;
  35. j++;
  36. }
  37. }
  38. System.err.println("***");
  39. for(int i = 0; i < H; i++) {
  40. for(int j = 0; j < W; j++)
  41. System.err.print(css[i][j]);
  42. System.err.println();
  43. }
  44. for(int j = 0; j < W; j++) {
  45. int k = H - 1;
  46. for(int i = H - 1; i >= 0; i--)
  47. if(css[i][j] > 0)
  48. css[k--][j] = css[i][j];
  49. while(k >= 0)
  50. css[k--][j] = 0;
  51. }
  52. }
  53. System.out.println(ans);
  54. }
  55. }
  56. }
  57.  
Success #stdin #stdout #stderr 0.15s 380672KB
stdin
1
6 9 9 9 9
5
5 9 5 5 9
5 5 6 9 9
4 6 3 6 9
3 3 2 9 9
2 2 1 1 1
10
3 5 6 5 6
2 2 2 8 3
6 2 5 9 2
7 7 7 6 1
4 6 6 4 9
8 9 1 1 8
5 6 1 8 1
6 8 2 1 2
9 6 3 3 5
5 3 8 8 8
5
1 2 3 4 5
6 7 8 9 1
2 3 4 5 6
7 8 9 1 2
3 4 5 6 7
3
2 2 8 7 4
6 5 7 7 7
8 8 9 9 9
0
stdout
36
38
99
0
72
stderr
@@@
69999
***
60000
@@@
60000
***
60000
@@@
59559
55699
46369
33299
22111
***
59559
55699
46369
33299
22000
@@@
59000
55559
46699
33369
22299
***
59000
00009
46699
00069
00099
@@@
00000
00009
00099
59069
46699
***
00000
00009
00099
59069
46699
@@@
35656
22283
62592
77761
46649
89118
56181
68212
96335
53888
***
35656
00083
62592
00061
46649
89118
56181
68212
96335
53000
@@@
00000
00056
35083
62692
46561
89649
56118
68181
96212
53335
***
00000
00056
35083
62692
46561
89649
56118
68181
96212
50005
@@@
00000
00006
30053
65082
42691
86569
59648
66111
98182
56215
***
00000
00006
30053
65082
42691
86569
59648
66000
98182
56215
@@@
00000
00000
30006
65053
42082
86691
59569
66648
98182
56215
***
00000
00000
30006
65053
42082
86691
59569
00048
98182
56215
@@@
00000
00000
00006
30053
65082
42091
86669
59548
98182
56215
***
00000
00000
00006
30053
65082
42091
80009
59548
98182
56215
@@@
00000
00000
00006
30003
60052
45081
82099
59548
98182
56215
***
00000
00000
00006
30003
60052
45081
82099
59548
98182
56215
@@@
12345
67891
23456
78912
34567
***
12345
67891
23456
78912
34567
@@@
22874
65777
88999
***
22874
65000
88000
@@@
22000
65000
88874
***
22000
65000
00074
@@@
00000
22000
65074
***
00000
22000
65074