• Source
    1. tickets="""Afghanistan 4/17-4/18
    2. Albania 9/25-10/2
    3. Algeria 11/23-11/25
    4. Andorra 8/22-8/27
    5. Angola 5/18-5/19
    6. Anguilla 3/2-3/3
    7. Antarctica 6/3-6/5
    8. Argentina 2/2-2/7
    9. Armenia 5/18-5/21
    10. Aruba 1/1-1/8
    11. Australia 3/25-3/31
    12. Austria 2/7-2/8
    13. Azerbaijan 4/11-4/13
    14. Bahamas 8/20-8/24
    15. Bahrain 7/26-7/31
    16. Bangladesh 6/22-6/26
    17. Barbados 9/5-9/7
    18. Belarus 9/8-9/15
    19. Belgium 6/8-6/10
    20. Belize 7/6-7/10
    21. Benin 8/6-8/10
    22. Bermuda 9/3-9/6
    23. Bhutan 9/14-9/19
    24. Botswana 11/23-11/24
    25. Brazil 7/10-7/13
    26. Bulgaria 2/15-2/22
    27. Burundi 3/6-3/8
    28. Cambodia 3/16-3/22
    29. Cameroon 12/3-12/9
    30. Canada 9/26-9/27
    31. Chad 12/1-12/3
    32. Chile 5/7-5/13
    33. China 1/14-1/18
    34. Colombia 3/2-3/5
    35. Comoros 8/26-8/28
    36. Congo 4/2-4/9
    37. Cuba 1/10-1/17
    38. Cyprus 6/27-6/28
    39. Denmark 2/22-2/24
    40. Djibouti 5/19-5/24
    41. Dominica 12/19-12/24
    42. Ecuador 12/7-12/8
    43. Egypt 12/5-12/6
    44. Eritrea 10/15-10/17
    45. Estonia 11/4-11/11
    46. Ethiopia 8/1-8/6
    47. Fiji 11/19-11/20
    48. Finland 2/18-2/19
    49. France 6/29-7/3
    50. Gabon 3/27-4/3
    51. Gambia 9/25-9/28
    52. Georgia 2/29-3/2
    53. Germany 3/17-3/21
    54. Ghana 11/7-11/9
    55. Gibraltar 7/10-7/15
    56. Greece 11/27-11/28
    57. Greenland 5/3-5/6
    58. Grenada 10/11-10/18
    59. Guadeloupe 12/20-12/24
    60. Guam 4/11-4/16
    61. Guatemala 3/6-3/9
    62. Guernsey 9/13-9/16
    63. Guinea 6/4-6/8
    64. Guyana 10/26-10/30
    65. Haiti 1/20-1/24
    66. Hungary 1/20-1/24
    67. Iceland 7/25-8/1
    68. India 7/21-7/28
    69. Indonesia 8/20-8/27
    70. Iraq 9/12-9/18
    71. Ireland 10/25-10/28
    72. Israel 6/11-6/18
    73. Italy 2/6-2/12
    74. Jamaica 1/23-1/25
    75. Jersey 1/31-2/6
    76. Jordan 12/5-12/6
    77. Kazakhstan 4/2-4/8
    78. Kenya 7/29-8/4
    79. Kiribati 1/3-1/5
    80. Kuwait 7/14-7/18
    81. Kyrgyzstan 6/13-6/14
    82. Latvia 2/6-2/12
    83. Lebanon 1/10-1/14
    84. Lesotho 1/29-2/3
    85. Liberia 7/14-7/18
    86. Libya 4/19-4/21
    87. Liechtenstein 3/30-4/2
    88. Lithuania 5/2-5/8
    89. Luxembourg 8/28-8/31
    90. Macao 4/3-4/10
    91. Madagascar 11/15-11/22
    92. Malawi 9/20-9/21
    93. Malaysia 11/10-11/16
    94. Maldives 10/31-11/5
    95. Mali 9/17-9/24
    96. Malta 8/23-8/25
    97. Martinique 7/28-7/29
    98. Mauritania 10/13-10/20
    99. Mauritius 12/21-12/28
    100. Mayotte 10/24-10/29
    101. Mexico 2/24-3/2
    102. Monaco 12/4-12/7
    103. Mongolia 5/6-5/8
    104. Montenegro 8/9-8/11
    105. Montserrat 12/12-12/16
    106. Morocco 6/26-6/29
    107. Mozambique 2/18-2/21
    108. Myanmar 11/29-12/3
    109. Namibia 10/10-10/12
    110. Narnia 6/8-6/9
    111. Nauru 12/15-12/19
    112. Nepal 5/6-5/8
    113. Netherlands 12/8-12/12
    114. Nicaragua 9/29-10/2
    115. Niger 4/28-5/5
    116. Nigeria 7/23-7/25
    117. Niue 5/14-5/21
    118. Norway 5/8-5/9
    119. Oman 2/13-2/16
    120. Pakistan 6/11-6/16
    121. Palau 6/11-6/14
    122. Panama 7/18-7/20
    123. Paraguay 11/9-11/15
    124. Peru 12/5-12/7
    125. Philippines 4/6-4/11
    126. Pitcairn 6/24-6/29
    127. Poland 8/27-8/28
    128. Portugal 5/27-5/31
    129. Qatar 1/16-1/23
    130. Romania 7/5-7/7
    131. Rwanda 6/6-6/7
    132. Samoa 7/1-7/2
    133. Senegal 11/19-11/20
    134. Serbia 6/20-6/24
    135. Seychelles 8/12-8/17
    136. Singapore 7/23-7/25
    137. Slovakia 6/16-6/17
    138. Slovenia 9/17-9/19
    139. Somalia 10/22-10/27
    140. Spain 9/24-9/29
    141. Sudan 1/8-1/10
    142. Suriname 11/28-11/29
    143. Swaziland 6/10-6/16
    144. Sweden 8/23-8/24
    145. Switzerland 8/31-9/4
    146. Tajikistan 1/20-1/23
    147. Thailand 6/27-6/30
    148. Togo 11/16-11/17
    149. Tokelau 3/28-3/29
    150. Tonga 5/8-5/10
    151. Tunisia 11/16-11/23
    152. Turkey 7/11-7/12
    153. Turkmenistan 11/28-11/30
    154. Tuvalu 3/15-3/22
    155. Uganda 10/6-10/9
    156. Ukraine 9/28-9/29
    157. Uruguay 7/1-7/6
    158. Uzbekistan 2/26-3/4
    159. Vanuatu 8/15-8/21
    160. Yemen 6/24-6/29
    161. Zambia 1/27-2/3
    162. Zimbabwe 10/29-11/5
    163. """
    164.  
    165. a=[]
    166. b=[]
    167. tickets.split(/\n/).each {|t|
    168. t = t.split(/\s|-/);
    169. if (t.length >= 3) then
    170. t[1] = t[1].split(/\//)
    171. from = t[1][0].rjust(2,"0") + t[1][1].rjust(2,"0")
    172. t[2] = t[2].split(/\//)
    173. to = t[2][0].rjust(2,"0") + t[2][1].rjust(2,"0")
    174. a.push({"name" => t[0],"from" => from,"to" => to})
    175. end
    176. }
    177.  
    178. a = a.sort {|x, y| y["to"] <=> x["to"] }
    179.  
    180. def nodup(x,y)
    181. return (y['from'] < x['from'] && y['to'] < x['from']) || (x['to'] < y['from'] && x['to'] < y['to'])
    182. end
    183.  
    184. def getMaxTickets(target, tickets)
    185. max = []
    186. tickets.each {|t|
    187. if (nodup(t[0], target) && max.length < t.length) then
    188. max = t
    189. end
    190. }
    191. return max
    192. end
    193.  
    194. a.each{|t|
    195. c=[]
    196. c.push(t)
    197. c += getMaxTickets(t,b)
    198. b.push(c)
    199. }
    200.  
    201. b = b.sort {|x, y| y.size <=> x.size }
    202. d = b[0].sort {|x, y| x['name'] <=> y['name'] }
    203.  
    204. print d.size
    205. d.each{|s| print " " + s['name']}
    206.  
    207.