title: Find continuous rolling combination of values from a vector that sum to target value
body: <p>I have counts of hourly salmon passage past an observation tower over the course of a season and found the proportion of the total seasonal passage for each hour.</p>
  <p>I want to find the span of hours that account for at least 80% of daily passage. In other words, I need to find the shortest combination of continuous counts which sum to greater than or equal to 0.80.</p>
  <p>For example, if I have:</p>
  <pre><code>fish &lt;- data.frame(hour = c(0000,   0100,   0200,   0300,   0400,   0500,   0600,   0700,   0800,
                              0900,   1000,   1100,   1200,   1300,   1400,   1500,   1600,   1700,
                              1800,   1900,   2000,   2100,   2200,   2300),
                     prop = c(0.06,   0.05,   0.01,   0.00,   0.00,   0.02,   0.03,   0.02,   0.03,
                              0.02,   0.01,   0.01,   0.00,   0.00,   0.01,   0.03,   0.05,   0.09,
                              0.10,   0.07,   0.07,   0.11,   0.11,   0.11))
  </code></pre>
  <p>I need a function that will return:</p>
  <pre><code>   hour prop
  1  1600 0.05
  2  1700 0.09
  3  1800 0.10
  4  1900 0.07
  5  2000 0.07
  6  2100 0.11
  7  2200 0.11
  8  2300 0.11
  9     0 0.06
  10  100 0.05
  </code></pre>
  <p>... which is the shortest continuous period (1600 - 0100, 10 hours) which sum to at least 80% of daily passage (.81).</p>