Cody

Problem 1875. GJam: 2013 China Event: Cannon Angle

Solution 667239

Submitted on 7 May 2015 by Gergely Patay
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%% tic vd=[249 6326 ]; exp=44.5948575; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

2   Pass
%% vd=[77 41 ]; exp=1.9429163; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

3   Pass
%% vd=[28 11 ]; exp=3.9516039; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

4   Pass
%% vd=[105 21 ]; exp=0.5347917; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

5   Pass
%% vd=[147 51 ]; exp=0.6626633; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

6   Pass
%% vd=[300 3210 ]; exp=10.2293872; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

7   Pass
%% vd=[219 61 ]; exp=0.3570850; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

8   Pass
%% vd=[240 41 ]; exp=0.1998405; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

9   Pass
%% vd=[179 3269 ]; exp=44.5041154; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

10   Pass
%% vd=[300 3480 ]; exp=11.1338133; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

11   Pass
%% vd=[102 81 ]; exp=2.1878908; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

12   Pass
%% vd=[121 51 ]; exp=0.9781434; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

13   Pass
%% vd=[138 31 ]; exp=0.4570257; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

14   Pass
%% vd=[210 4500 ]; exp=45.0000000; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

15   Pass
%% vd=[192 3761 ]; exp=44.4745779; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

16   Pass
%% vd=[37 41 ]; exp=8.5337735; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

17   Pass
%% vd=[32 41 ]; exp=11.5514232; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

18   Pass
%% vd=[199 81 ]; exp=0.5742839; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

19   Pass
%% vd=[300 3360 ]; exp=10.7304643; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

20   Pass
%% vd=[233 71 ]; exp=0.3671784; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

21   Pass
%% vd=[266 81 ]; exp=0.3214027; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

22   Pass
%% vd=[27 21 ]; exp=8.1988972; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

23   Pass
%% vd=[279 21 ]; exp=0.0757408; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

24   Pass
%% vd=[300 5230 ]; exp=17.3572961; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

25   Pass
%% vd=[279 51 ]; exp=0.1839431; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

26   Pass
%% vd=[218 21 ]; exp=0.1240585; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

27   Pass
%% vd=[300 7690 ]; exp=28.4309587; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

28   Pass
%% vd=[89 31 ]; exp=1.0990234; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

29   Pass
%% vd=[141 2028 ]; exp=44.2618026; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

30   Pass
%% vd=[178 81 ]; exp=0.7178094; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

31   Pass
%% vd=[132 71 ]; exp=1.1443126; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

32   Pass
%% vd=[300 690 ]; exp=2.1544417; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

33   Pass
%% vd=[300 6970 ]; exp=24.6861041; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

34   Pass
%% vd=[41 1 ]; exp=0.1670142; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

35   Pass
%% vd=[123 21 ]; exp=0.3897097; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

36   Pass
%% vd=[48 61 ]; exp=7.5190650; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

37   Pass
%% vd=[77 81 ]; exp=3.8470546; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

38   Pass
%% vd=[152 71 ]; exp=0.8628902; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

39   Pass
%% vd=[267 11 ]; exp=0.0433201; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

40   Pass
%% vd=[164 21 ]; exp=0.2192071; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

41   Pass
%% vd=[300 4310 ]; exp=13.9947943; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

42   Pass
%% vd=[256 71 ]; exp=0.3041622; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

43   Pass
%% vd=[192 41 ]; exp=0.3122545; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

44   Pass
%% vd=[300 7110 ]; exp=25.3662790; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

45   Pass
%% vd=[98 31 ]; exp=0.9063600; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

46   Pass
%% vd=[286 21 ]; exp=0.0720786; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

47   Pass
%% vd=[44 91 ]; exp=13.7142226; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

48   Pass
%% vd=[300 8360 ]; exp=32.7741901; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

49   Pass
%% vd=[300 5060 ]; exp=16.7170592; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

50   Pass
%% vd=[194 81 ]; exp=0.6042720; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

51   Pass
%% vd=[96 61 ]; exp=1.8595639; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

52   Pass
%% vd=[190 1 ]; exp=0.0077770; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

53   Pass
%% vd=[237 51 ]; exp=0.2549165; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

54   Pass
%% vd=[52 31 ]; exp=3.2254600; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

55   Pass
%% vd=[250 71 ]; exp=0.3189378; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

56   Pass
%% vd=[29 61 ]; exp=22.6508544; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

57   Pass
%% vd=[300 4030 ]; exp=13.0143792; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

58   Pass
%% vd=[39 31 ]; exp=5.7607904; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

59   Pass
%% vd=[62 61 ]; exp=4.4733355; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

60   Pass
%% vd=[246 61 ]; exp=0.2829993; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

61   Pass
%% vd=[86 51 ]; exp=1.9374169; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

62   Pass
%% vd=[252 91 ]; exp=0.4023216; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

63   Pass
%% vd=[275 11 ]; exp=0.0408363; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

64   Pass
%% vd=[49 81 ]; exp=9.6529702; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

65   Pass
%% vd=[127 11 ]; exp=0.1914728; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

66   Pass
%% vd=[223 61 ]; exp=0.3443890; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

67   Pass
%% vd=[160 21 ]; exp=0.2303047; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

68   Pass
%% vd=[196 31 ]; exp=0.2265546; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

69   Pass
%% vd=[55 91 ]; exp=8.5730698; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

70   Pass
%% vd=[110 1234 ]; exp=44.0395169; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

71   Pass
%% vd=[274 61 ]; exp=0.2281140; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

72   Pass
%% vd=[300 6800 ]; exp=23.8846446; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

73   Pass
%% vd=[300 3310 ]; exp=10.5630642; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

74   Pass
%% vd=[44 31 ]; exp=4.5141266; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

75   Pass
%% vd=[295 1 ]; exp=0.0032261; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

76   Pass
%% vd=[64 11 ]; exp=0.7540525; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

77   Pass
%% vd=[240 21 ]; exp=0.1023567; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

78   Pass
%% vd=[91 21 ]; exp=0.7120327; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

79   Pass
%% vd=[300 1870 ]; exp=5.8744286; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

80   Pass
%% vd=[300 1730 ]; exp=5.4290641; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

81   Pass
%% vd=[259 51 ]; exp=0.2134486; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

82   Pass
%% vd=[51 91 ]; exp=10.0258563; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

83   Pass
%% vd=[300 4200 ]; exp=13.6075829; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

84   Pass
%% vd=[262 81 ]; exp=0.3312919; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

85   Pass
%% vd=[74 81 ]; exp=4.1674764; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

86   Pass
%% vd=[88 81 ]; exp=2.9417237; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

87   Pass
%% vd=[255 91 ]; exp=0.3929103; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

88   Pass
%% vd=[72 41 ]; exp=2.2226617; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

89   Pass
%% vd=[300 7900 ]; exp=29.6707716; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

90   Pass
%% vd=[300 1620 ]; exp=5.0800699; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

91   Pass
%% vd=[253 71 ]; exp=0.3114186; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

92   Pass
%% vd=[265 91 ]; exp=0.3638145; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

93   Pass
%% vd=[248 1 ]; exp=0.0045647; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

94   Pass
%% vd=[300 6090 ]; exp=20.7696393; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

95   Pass
%% vd=[158 71 ]; exp=0.7985813; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

96   Pass
%% vd=[300 2170 ]; exp=6.8338053; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

97   Pass
%% vd=[300 1500 ]; exp=4.7002140; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

98   Pass
%% vd=[163 31 ]; exp=0.3275780; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

99   Pass
%% vd=[139 31 ]; exp=0.4504729; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

100   Pass
%% vd=[271 21 ]; exp=0.0802786; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

101   Pass
%% vd=[113 41 ]; exp=0.9016072; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

102   Pass
%% vd=[156 81 ]; exp=0.9346125; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

103   Pass
%% vd=[100 61 ]; exp=1.7135925; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

104   Pass
%% vd=[85 91 ]; exp=3.5451226; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

105   Pass
%% vd=[43 61 ]; exp=9.4316060; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

106   Pass
%% vd=[57 61 ]; exp=5.3012744; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

107   Pass
%% vd=[136 61 ]; exp=0.9260755; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

108   Pass
%% vd=[300 5200 ]; exp=17.2436039; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

109   Pass
%% vd=[159 71 ]; exp=0.7885653; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

110   Pass
%% vd=[86 61 ]; exp=2.3180653; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

111   Pass
%% vd=[300 8140 ]; exp=31.2094004; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

112   Pass
%% vd=[300 5190 ]; exp=17.2057754; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

113   Pass
%% vd=[259 6845 ]; exp=45.0000000; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

114   Pass
%% vd=[300 6570 ]; exp=22.8379951; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

115   Pass
%% vd=[285 71 ]; exp=0.2454102; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

116   Pass
%% vd=[300 6460 ]; exp=22.3511092; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

117   Pass
%% vd=[75 573 ]; exp=43.3260450; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

118   Pass
%% vd=[46 41 ]; exp=5.4730826; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

119   Pass
%% vd=[52 21 ]; exp=2.1824862; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

120   Pass
%% vd=[300 5950 ]; exp=20.1913108; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

121   Pass
%% vd=[68 91 ]; exp=5.5599659; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

122   Pass
%% vd=[64 21 ]; exp=1.4399949; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

123   Pass
%% vd=[36 11 ]; exp=2.3856596; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

124   Pass
%% vd=[134 21 ]; exp=0.3283507; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

125   Pass
%% vd=[9 1 ]; exp=3.4745532; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

126   Pass
%% vd=[143 31 ]; exp=0.4256222; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

127   Pass
%% vd=[116 91 ]; exp=1.9000393; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

128   Pass
%% vd=[23 41 ]; exp=24.7121091; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

129   Pass
%% vd=[300 8390 ]; exp=33.0022766; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

130   Pass
%% vd=[200 51 ]; exp=0.3579647; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

131   Pass
%% vd=[66 91 ]; exp=5.9068209; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

132   Pass
%% vd=[203 21 ]; exp=0.1430697; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

133   Pass
%% vd=[300 230 ]; exp=0.7175455; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

134   Pass
%% vd=[300 7250 ]; exp=26.0668121; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

135   Pass
%% vd=[81 71 ]; exp=3.0438586; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

136   Pass
%% vd=[184 91 ]; exp=0.7547006; theta=Cannon(vd(1),vd(2)); assert(abs(theta-exp)<2e-6)

137   Fail