#include<iostream> #include<algorithm> #include<cstring> usingnamespace std; constint N = 31; int k = 1; longlong dp[N][N][N][N][N]; intmain() { while (cin >> k, k) { int n[6] = {0}; for (int i = 1; i <= k; ++i) { cin >> n[i]; } memset(dp, 0, sizeof(dp)); dp[0][0][0][0][0] = 1; for (int a = 0; a <= n[1]; a++) { for (int b= 0; b<= min(a, n[2]); b++) { for (int c = 0; c <= min(b, n[3]); c++) { for (int d= 0; d <= min(d, n[4]); d ++) { for (int e = 0; e <= min(e, n[5]); e ++) { longlong &x = dp[a][b][c][d][e]; if (a && a - 1 >= b) x += dp[a - 1][b][c][d][e]; if (b && b - 1 >= c) x += dp[a][b - 1][c][d][e]; if (c && c - 1 >= d) x += dp[a][b][c - 1][d][e]; if (d && d - 1 >= e) x += dp[a][b][c][d - 1][e]; if (e) x += dp[a][b][c][d][e - 1]; } } } } } cout << dp[n[1]][n[2]][n[3]][n[4]][n[5]] << endl; }