fork download
  1. #!sapphire
  2. %行列で扱いやすいように#=-1, .=0 とした。
  3. %扱いやすいように範囲外を-1として6*8行列とした。
  4. def mat #m[[-1,-1,-1,-1,-1,-1,-1,-1],
  5. [-1,-1,-1, 0, 0,-1,-1,-1],
  6. [-1,-1, 0,-1,-1,-1, 0,-1],
  7. [-1,-1,-1,-1, 0,-1, 0,-1],
  8. [-1, 0, 0, 0,-1,-1,-1,-1],
  9. [-1,-1,-1,-1,-1,-1,-1,-1]];
  10.  
  11. %等価なラベルをリストとして記憶する。
  12. def equal [];
  13.  
  14. %(i,j)の周辺を含む9か所をマークする。等価なラベルが見つかった場合には記憶する。
  15. def mark(i,j,v)
  16. let(s,0)(t,0)
  17. for(s:=i-1,s<=i+1,s++)
  18. for(t:=j-1,t<=j+1,t++)
  19. if(mat[s,t] = 0)
  20. mat[s,t] := v
  21. else if(mat[s,t] < v && positive?(mat[s,t]))
  22. equal := cons(list(v,mat[s,t]),equal)
  23. else
  24. #f;
  25.  
  26.  
  27. %走査し等価なラベル分を差し引いて空間数を表示する。
  28. def scan()
  29. let(i,0)(j,0)(n,0){
  30. for(i:=2,i<=5,i++)
  31. for(j:=2,j<=7,j++)
  32. if(mat[i,j] = 0){
  33. n++,
  34. mark(i,j,n)}
  35. else if(mat[i,j] >= 1)
  36. mark(i,j,mat[i,j])
  37. else
  38. #f,
  39. answer(n)};
  40.  
  41.  
  42. def answer(n){
  43. display(n-length(equal)),
  44. newline(),
  45. display(equal),
  46. newline(),
  47. display(mat)};
  48.  
  49.  
  50. norm> scan();
  51. 3
  52. ((4 3))
  53. #m((-1 -1 -1 -1 -1 -1 -1 -1)(-1 -1 -1 1 1 -1 -1 -1)(-1 -1 1 -1 -1 -1 2 -1)(-1 -1 -1 -1 3 -1 2 -1)(-1 4 4 3 -1 -1 -1 -1)(-1 -1 -1 -1 -1 -1 -1 -1))#<undef>
  54. norm>
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#!sapphire
^
Main.java:1: error: class, interface, or enum expected
#!sapphire
  ^
Main.java:2: error: illegal character: '#'
%???????????#=-1, .=0 ????
            ^
Main.java:2: error: illegal character: '\u3002'
%???????????#=-1, .=0 ????
                         ^
Main.java:3: error: illegal character: '\u3002'
%????????????-1???6*8??????
                          ^
Main.java:4: error: illegal character: '#'
def mat #m[[-1,-1,-1,-1,-1,-1,-1,-1],
        ^
Main.java:11: error: class, interface, or enum expected
%??????????????????
^
Main.java:11: error: illegal character: '\u3002'
%??????????????????
                  ^
Main.java:14: error: class, interface, or enum expected
%(i,j)??????9??????????????????????????????
^
Main.java:14: error: illegal character: '\u3002'
%(i,j)??????9??????????????????????????????
                     ^
Main.java:14: error: illegal character: '\u3002'
%(i,j)??????9??????????????????????????????
                                          ^
Main.java:24: error: illegal character: '#'
          #f;
          ^
Main.java:27: error: class, interface, or enum expected
%?????????????????????????
^
Main.java:27: error: illegal character: '\u3002'
%?????????????????????????
                         ^
Main.java:38: error: illegal character: '#'
          #f,
          ^
Main.java:42: error: class, interface, or enum expected
def answer(n){
^
Main.java:50: error: class, interface, or enum expected
norm> scan();
^
Main.java:51: error: class, interface, or enum expected
3
^
Main.java:53: error: illegal character: '#'
#m((-1 -1 -1 -1 -1 -1 -1 -1)(-1 -1 -1 1 1 -1 -1 -1)(-1 -1 1 -1 -1 -1 2 -1)(-1 -1 -1 -1 3 -1 2 -1)(-1 4 4 3 -1 -1 -1 -1)(-1 -1 -1 -1 -1 -1 -1 -1))#<undef>
^
Main.java:53: error: illegal character: '#'
#m((-1 -1 -1 -1 -1 -1 -1 -1)(-1 -1 -1 1 1 -1 -1 -1)(-1 -1 1 -1 -1 -1 2 -1)(-1 -1 -1 -1 3 -1 2 -1)(-1 4 4 3 -1 -1 -1 -1)(-1 -1 -1 -1 -1 -1 -1 -1))#<undef>
                                                                                                                                                 ^
20 errors
stdout
Standard output is empty