diff --git a/2016/ruby/day_19.rb b/2016/ruby/day_19.rb
new file mode 100644
index 0000000..6ec925f
--- /dev/null
+++ b/2016/ruby/day_19.rb
@@ -0,0 +1,16 @@
+Elf = Struct.new(:id, :presents)
+
+n = 3017957
+elves = Array.new(n) {|i| Elf.new(i+1, 1) }
+
+until elves.size == 1
+ elf = elves.shift
+ next if elf.presents.zero?
+
+ elf.presents += elves.first.presents
+ elves.first.presents = 0
+
+ elves << elf
+end
+
+p elves