fork download
  1. #!/usr/bin/ruby
  2. #coding:utf-8
  3.  
  4. require 'zlib'
  5. require 'base64'
  6. require 'stringio'
  7. Encoding.default_external=Encoding::UTF_8
  8.  
  9. def solve(_expr)
  10. expr=Hash[*_expr.split(',').flat_map{|e|
  11. a,b=e.split('=')
  12. [a.chars.to_a.sort.join,b.chomp('m').chomp('c').chomp('度').to_i]
  13. }]
  14. angles=['A角','B角','C角']
  15. edges=['AB','BC','AC']
  16.  
  17. #内周の和は180度
  18. angles.size.times{|i|
  19. if !expr.has_key?(angles[i]) &&
  20. expr.has_key?(angles[(i+1)%angles.size]) &&
  21. expr.has_key?(angles[(i+2)%angles.size])
  22. then
  23. expr[angles[i]]=180-expr[angles[(i+1)%angles.size]]-expr[angles[(i+2)%angles.size]]
  24. end
  25. }
  26.  
  27. #3辺か3角が等しい
  28. if [angles,edges].any?{|category|
  29. category.all?{|e|expr.has_key?(e)&&expr[category[0]]==expr[e]}
  30. }
  31. return 'あ'
  32. end
  33. #2辺か2角が等しい
  34. if [angles,edges].any?{|category|
  35. category.combination(2).any?{|x,y|expr.has_key?(x)&&expr.has_key?(y)&&expr[x]==expr[y]}
  36. }
  37. return 'あ' if angles.any?{|e|expr.has_key?(e)&&expr[e]==60} # 2辺が等しく、角の1つが60度
  38. return 'い'
  39. end
  40. 'う'
  41. end
  42.  
  43. f=StringIO.new(Zlib.inflate(Base64.decode64($<.read)).force_encoding(Encoding.default_external))
  44. #f=$<
  45. while f.gets
  46. id,expr,ans=$_.split
  47. #break if id[0,1]!='T'
  48. puts id if solve(expr)!=ans
  49. end
  50.  
  51. __END__
  52. 【解答】
  53. 31,41,59,265,358,444,555,666,777,888,979,999
  54. ※ゾロ目以外の解答を連結すると円周率になる
  55. 【感想・工夫した点など】
  56. 2角がわかっているときにもう1角を計算することで、最後の条件判断を減らした。
  57. 辺の書き方は2通りあるが、ソートすることで1通りになるようにした。
  58. 【言語と処理系】
  59. Ruby 2.0 (マルチバイト文字列を含むのでRuby 1.9以降専用)
  60. 【ソースコード】
Success #stdin #stdout 0.07s 7904KB
stdin
eJyNXcux5LhyXdezZRbEH1jMglUuyINZywgpXsgAGSH5IHcUihgzVCQy85wE
ydu96ttFEt9Efk8m/mXbXn//93++/wz5//7nv/74/vnBn/ufocTv36///bd/
/uNftvDaP3/Gv/51Pqrb8dbnff7y3o9/vu/9+/e9+Pr+Gtr3588+/33Pf+V5
eu3f5/34/TP/PUcwG9zx02f+JF/l1/nTmN3uf6bZbpnN5LP1//i+V+Z7oY35
7fFbfZ1DjjKvb++x2HRLwovtnOLm+j9HH639frwSxjG7t87q+H2csz5GdTxP
5+/fVQuyvtLUt83jjffxz5xYCHNwLUpfxXrHwEKUXeo2bHqYXsdCyjr75aSt
Wlc05J/2gT6ULZGvZH0biORcwPmtruUx8fo6tr/KsKp0U2xh2ksm+123Mpet
WC/9ZSR1zHDMNerVesrNeorbMZGuL8cg/32YzndUnsCOAdj8Ynz5NXs/LF9M
5/ySzCvpuUgbBpZPmvAj+dge7a65ctBVmsQRg7Q6bFL1Rb183yg2q5AwvvNn
6bwZQdJUMRDptsvRwNOQqT0bctd9i7IXIVS81uzr1Iwuk7IWtDf//M4wa3Mp
vH6g0RQntaVh051/HiQ1dDHCFuVwyYId7SY5VkNIOOtCtGKDjRWDzXOwzYYB
AktC8yspyRjPrVGmgUdHo+319xMN3nK51M8z2cBdlF9VayHSwMZsP+IwDmNZ
NuFqs9zu57FShWxJqOvGYTvP/oUpTVr8YEe+PWiP6eSWYc7Hn8nzuXD1JmQx
dBFDsibKsSQiTdp1zerDEi+vNSaz92QBMqTvCPX494fGvhs8/lqFwpCPxrKq
bik3Wcut63zCKUdDAUM8t0t5X3AMSATG5Fnz88TP9/n820CdE6oXvsercPD8
j2da+1ul1fexI/TPXHZZ/YXsg6z7uU9nY6YZ2GE9yKbYtE/ZKpQQLlzJtS3b
EJSumozXxhHQQ+tKjl8poefqjfWKQvQhdxVmmx2raqSsNB9MbfhKgmNfdMRB
OEtMQvW6PzhoYTOinax/oRkm8It82T9GUPEk+bEu+rdVUWS6fWuTj21Os6Dd
op1iazrObr/nuyctbjqQU6lRTU4W9MvWdV1uD8v5pbL1xDtlD+PLNKBve+l1
S7DKz5mzuC6EY1fIodJsKPPPnUTCl4urniOKyexeCDnQSENc24F+8eXpn3lc
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
stdout
31
41
59
265
358
444
555
666
777
888
979
999