Maximum Points in an Archery Competition LeetCode solution in C++

1
class Solution {
2
public:
3
int maxscore;
4
vector<int> ans;
5

6
void helper(vector<int> &bob, int i, vector<int> &alice, int remarrows, int score) {
7
if (i == -1 or remarrows <= 0) {
8
if (score >= maxscore) {
9
maxscore = score;
10
ans = bob;
11
}
12
return;
13
}
14

15
helper(bob, i - 1, alice, remarrows, score);
16
if (remarrows > alice[i]) {
17
bob[i] = alice[i] + 1;
18
remarrows -= (alice[i] + 1);
19
score += i;
20
helper(bob, i - 1, alice, remarrows, score);
21
bob[i] = 0;
22
}
23
}
24

25
vector<int> maximumBobPoints(int numArrows, vector<int> &aliceArrows) {
26
vector<int> bob(12, 0);
27
maxscore = INT_MIN;
28
helper(bob, 11, aliceArrows, numArrows, 0);
29

30
int arrows_used = 0;
31
for (int a : ans) arrows_used += a;
32
if (arrows_used < numArrows) ans[0] += (numArrows - arrows_used);
33
return ans;
34
}
35
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0