不管怎么调始终都是每个 subWA1 个,求调或者 hack 数据
#include <string>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int k, n, a[2005], ma = -20000, z, an[2005], q, su = -20000;
int f[2005];
int main()
{
scanf("%d", &n);
k = n;
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
int x = a[i];
if (x < 0)
z += 1;
ma = max(ma, x);
}
if (z == 0)
{
printf("%d", ma);
return 0;
}
if (z == n)
{
printf("%d", ma);
return 0;
}
sort(a + 1, a + k + 1);
f[0] = 1;
for (int i = z + 1; i < k; i++)
{
for (int j = 2000; j >= a[i]; j--)
if (f[j - a[i]])
f[j] = 1;
}
for (int i = 1; i <= z; i++)
{
int p = 0;
for (p = -a[i]; p >= 0; p--)
if (f[p])
break;
su = max(su, a[i] + p + ma);
}
printf("%d", su);
return 0;
}