Cody

# Problem 1875. GJam: 2013 China Event: Cannon Angle

Solution 322030

Submitted on 22 Sep 2013 by Claudio Gelmi
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