📄 1557.txt
字号:
#include <cstdio>
#include <memory>
#define Max 100100
int sum,n,t,avg;
int pn[30];
int num[2][Max],*pre,*next,*pt;
inline int cal(int ig)
{
int i,j,s,mmax=10;
memset(num,0,sizeof(num));
pre=num[0];next=num[1];
for(i=0;i<n;i++)
{
pre[0]=1;
if(i==ig) continue;
for(j=0;j<mmax;j++)
if(pre[j])
{
next[j]+=pre[j];
next[j+pn[i]]+=pre[j];
}
mmax += pn[i];
pt=pre;
pre=next;
next=pt;
memset(next,0,sizeof(num[0]));
}
s=0;
i= avg+1>pn[ig] ? avg+1-pn[ig] : 0;
for( ;i<=avg;i++) s+= pre[i];
return s;
}
int main()
{
int i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
sum=0;
for(i=0;i<n;i++)
scanf("%d",&pn[i]) , sum+=pn[i];
avg=sum/2;
for(i=0;i<n;i++)
{
printf(i==0 ? "%d" : " %d",cal(i));
}
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -