CS302 Midterm Exam - October 14, 2014 - Page 3
Do your answers on the answer sheets provided.
When you write code, you do not need to have "include" or "using" statements.
Question 5
Your job is to write the procedure int RB(int r, int b, vector <int> &N).
The procedure works as follows. Each element of N is a number of balls, which
are either all red or all blue.
The problem is, you don't know which color they are. Your program should return
1 if it is possible for the vector to represent excaly r red balls and b
blue balls. It should return 0 if it is impossible.
For example, RB(6, 7, { 4, 2, 4, 3 }) should return 1, and
RB(6, 8, { 4, 2, 4, 3 }) should return 0.
RB(6, 7, { 4, 4, 4, 1 }) should return 0 as well.
Constraint #1: N will have a maximum of 20 elements.
Constraint #2: Each element of N will be less than 200,000,000.
Constraint #3: No constraints on r or b.
Before writing this procedure, I want you to do the following:
- Outline your solution in English, rather than writing code.
- If this were a topcoder problem, N's size
could not be much bigger than this. Maybe 21 or 22. Why?
- Finally, code up your solution.
Scratch Space is Below (You may find the following useful):
| 0 | |
| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |