--- /dev/null
+#!/bin/bash
+
+set -u
+set -e
+
+declare -a fish
+
+filename="${1:-example.txt}"
+
+exec 3<"$filename"
+
+OLDIFS="$IFS"
+IFS=","
+read -u 3 -a fish
+IFS="$OLDIFS"
+
+buckets=(0 0 0 0 0 0 0 0 0)
+
+for f in "${fish[@]}"; do
+ ((buckets[$f]+=1))
+done
+
+for (( d=1; d<=256; d++ )); do
+ orig_zeros=${buckets[0]}
+ for (( i=1; i<=8; i++ )); do
+ temp=${buckets[$i]}
+ ((buckets[$((i-1))]+=$temp)) || true
+ buckets[$i]=0
+ done
+ ((buckets[8]+=$orig_zeros)) || true
+ ((buckets[6]+=$orig_zeros)) || true
+ ((buckets[0]-=$orig_zeros)) || buckets[0]=0
+done
+
+count=0
+for (( i=0; i<=8; i++ )); do
+ ((count+=${buckets[$i]}))
+done
+
+echo "After 256 days there are $count fish"