Calculate your stack exchange reputation Background:
I often find that, when browsing a Stackexchange site, I begin to wonder how people get the amount of reputation that they have. I know I can always count on codegolf SE to solve my problems, so here it is:
Create a program that will accept a positive integer which represents a person's reputation. We will ignore bounties, and say that these are the only ways to gain/lose rep on SE (full table here):

Every account starts out with 1 rep and cannot go below that
Your question is upvoted = +5
Your answer is upvoted = +10
Your question is downvoted = -2
Your answer is downvoted = -2
You downvote an answer = -1
Your answer is accepted = +15
You accept an answer = +2

Your program must figure out how many of those actions occurred on that user's account to get to the rep they have. It must figure out the shortest number of actions to get to this level of rep. Examples:

Input: 11
Output: 1 answer upvote
Input: 93
Output: 6 answer accepts, 1 answer accepted

In these examples when I say 'question upvote', it means that person's queston got upvoted. When I say 'answer downvoted', it means they downvoted someone else's answer.
Rules:
code-golf, so the shortest code that can do this wins.
Bash, 247 202 192 bytes



n=$1 bash &lt;(sed 's/E/)echo /;s/C/ Aaccept/;s/A/answer /
s/.*)/((&amp;)\&amp;\&amp;/'&lt;&lt;&lt;'a=(n+1)/15,a-1)s=s;q=question
aE$aC$s
r=n%5,r-4)d=d&amp;&amp;
r&gt;1E1Ced
1-r%2E1 Adownvote$d
n-=15*a,n&gt;8)q=A
n&gt;3E1 $q upvote')


How it works

After the sed command does it job, the following bash script gets executed:

((a=(n+1)/15,a-1))&amp;&amp;s=s;q=question
((a))&amp;&amp;echo $a answer accept$s
((r=n%5,r-4))&amp;&amp;d=d&amp;&amp;
((r&gt;1))&amp;&amp;echo 1 answer accepted
((1-r%2))&amp;&amp;echo 1 answer downvote$d
((n-=15*a,n&gt;8))&amp;&amp;q=answer 
((n&gt;3))&amp;&amp;echo 1 $q upvote


To obtain the optimal solution (minimal number of events to get n reputation), it suffices to compute the number of accepted answers (a) necessary to get to a reputation below 16 (1 answer accept) and handle the residue as follows:

1  (no rep change)
2  answer accepted, answer downvoted
3  answer accepted
4  question upvote, answer downvote
5  question upvote, answer downvoted
6  question upvote
7  question upvote, answer accepted, answer downvoted
8  question upvote, answer accepted
9  answer upvote, answer downvote
10 answer upvote, answer downvoted
11 answer upvote
12 answer upvote, answer accepted, answer downvoted
13 answer upvote, answer accepted  
14 answer accept, answer downvote
15 answer accept, answer downvoted