# 抽签

X星球要派出一个5人组成的观察团前往W星。
其中：
A国最多可以派出4人。
B国最多可以派出2人。
C国最多可以派出2人。
....

那么最终派往W星的观察团会有多少种国别的不同组合呢？

**输入格式**

第一行N,以下N行代表N个国家最多可派出人数Ai。

**输出格式**

最多多少种派法ANS，ANS为一个整数。

**输出规模**

```
1<N<10000
1<AI<10000
```
**示例输入**

```
6
4
2
2
1
1
3
```
**示例输出**
```
101
```


## aop

### before

```cpp
#include <iostream>
using namespace std;
int a[10000], N, i, ans = 0;
```
### after

```cpp
int main()
{
	
	cin >> N;
	for (i = 0; i < N; i++)
	{
		cin >> a[i];
	}
	findAns(a, 0, 0);

	cout << ans << endl;
	return 0;
}
```

## 答案

```cpp
void findAns(int a[], int start, int An) 
{
	if (start == N) 
	{
		if (An == 5)
			ans++; 
		return;
	}

	for (i = 0; i <= a[start]; i++) 
	{
		findAns(a, start + 1, An + i); 
	}
}
```
## 选项


### A

```cpp
void findAns(int a[], int start, int An) 
{
	if (start == N) 
	{
		if (An == 5)
			ans++; 
		return;
	}

	for (i = 0; i <= a[start]; i++) 
	{
		findAns(a, start + 1, An); 
	}
}
```

### B

```cpp
void findAns(int a[], int start, int An) 
{
	if (start == N) 
	{
		if (An == 5)
			ans++; 
		return;
	}

	for (i = 0; i <= a[start]; i++) 
	{
		findAns(a, start, An + i); 
	}
}
```

### C

```cpp
void findAns(int a[], int start, int An) 
{
	if (start == N) 
	{
		if (An == 5)
			ans++; 
		return;
	}

	for (i = 0; i <= a[start]; i++) 
	{
		findAns(a, start, An + 1); 
	}
}
```
