为什么我这么写会RE?
#include<iostream>
using namespace std;
const int N = 1e5 + 3, M = 5e3 + 3;
int n;
int a[N], d[M], p[M];
int len;
int null = 1e9 + 7;
void dfs(int u,int cnt,int num)
{
if (u == 2)
{
p[num]++;
return;
}
for (int i = cnt; i <= n; i++)
dfs(u + 1, i + 1, num + a[i]);
}
int main()
{
cin.tie(NULL), cout.tie(NULL);
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
d[a[i]]++;
len = max(len, a[i]);
}
dfs(0, 1, 0);
int ans = 0;
for (int i = 0; i <= len; i++)
{
ans += (d[i]*(d[i] - 1) / 2) * p[i];
ans %= null;
}
cout << ans << endl;
return 0;
}