fork download
  1. a, b, c, d = gets.split.map(&:to_i)
  2. unless d-(c-1)*b==1
  3. puts "Constraint Condition: d-(c-1)*b==1"
  4. exit
  5. end
  6. f = ->x{x > a ? x - b : c.times.reduce(x+d){|s,_|s=f[s]}}
  7. puts (1..200).map{|i|"%3s -> %2x" % [i,f[i]]}
Success #stdin #stdout 1.4s 6576KB
stdin
100 86 1919 164949
stdout
  1 ->  f
  2 ->  f
  3 ->  f
  4 ->  f
  5 ->  f
  6 ->  f
  7 ->  f
  8 ->  f
  9 ->  f
 10 ->  f
 11 ->  f
 12 ->  f
 13 ->  f
 14 ->  f
 15 ->  f
 16 ->  f
 17 ->  f
 18 ->  f
 19 ->  f
 20 ->  f
 21 ->  f
 22 ->  f
 23 ->  f
 24 ->  f
 25 ->  f
 26 ->  f
 27 ->  f
 28 ->  f
 29 ->  f
 30 ->  f
 31 ->  f
 32 ->  f
 33 ->  f
 34 ->  f
 35 ->  f
 36 ->  f
 37 ->  f
 38 ->  f
 39 ->  f
 40 ->  f
 41 ->  f
 42 ->  f
 43 ->  f
 44 ->  f
 45 ->  f
 46 ->  f
 47 ->  f
 48 ->  f
 49 ->  f
 50 ->  f
 51 ->  f
 52 ->  f
 53 ->  f
 54 ->  f
 55 ->  f
 56 ->  f
 57 ->  f
 58 ->  f
 59 ->  f
 60 ->  f
 61 ->  f
 62 ->  f
 63 ->  f
 64 ->  f
 65 ->  f
 66 ->  f
 67 ->  f
 68 ->  f
 69 ->  f
 70 ->  f
 71 ->  f
 72 ->  f
 73 ->  f
 74 ->  f
 75 ->  f
 76 ->  f
 77 ->  f
 78 ->  f
 79 ->  f
 80 ->  f
 81 ->  f
 82 ->  f
 83 ->  f
 84 ->  f
 85 ->  f
 86 ->  f
 87 ->  f
 88 ->  f
 89 ->  f
 90 ->  f
 91 ->  f
 92 ->  f
 93 ->  f
 94 ->  f
 95 ->  f
 96 ->  f
 97 ->  f
 98 ->  f
 99 ->  f
100 ->  f
101 ->  f
102 -> 10
103 -> 11
104 -> 12
105 -> 13
106 -> 14
107 -> 15
108 -> 16
109 -> 17
110 -> 18
111 -> 19
112 -> 1a
113 -> 1b
114 -> 1c
115 -> 1d
116 -> 1e
117 -> 1f
118 -> 20
119 -> 21
120 -> 22
121 -> 23
122 -> 24
123 -> 25
124 -> 26
125 -> 27
126 -> 28
127 -> 29
128 -> 2a
129 -> 2b
130 -> 2c
131 -> 2d
132 -> 2e
133 -> 2f
134 -> 30
135 -> 31
136 -> 32
137 -> 33
138 -> 34
139 -> 35
140 -> 36
141 -> 37
142 -> 38
143 -> 39
144 -> 3a
145 -> 3b
146 -> 3c
147 -> 3d
148 -> 3e
149 -> 3f
150 -> 40
151 -> 41
152 -> 42
153 -> 43
154 -> 44
155 -> 45
156 -> 46
157 -> 47
158 -> 48
159 -> 49
160 -> 4a
161 -> 4b
162 -> 4c
163 -> 4d
164 -> 4e
165 -> 4f
166 -> 50
167 -> 51
168 -> 52
169 -> 53
170 -> 54
171 -> 55
172 -> 56
173 -> 57
174 -> 58
175 -> 59
176 -> 5a
177 -> 5b
178 -> 5c
179 -> 5d
180 -> 5e
181 -> 5f
182 -> 60
183 -> 61
184 -> 62
185 -> 63
186 -> 64
187 -> 65
188 -> 66
189 -> 67
190 -> 68
191 -> 69
192 -> 6a
193 -> 6b
194 -> 6c
195 -> 6d
196 -> 6e
197 -> 6f
198 -> 70
199 -> 71
200 -> 72