minn==0可海星?mod 0可海星?
by t162 @ 2019-02-06 22:08:05
我好像看出了啥
by 豌豆射手皮0608 @ 2019-02-06 22:10:52
第47行为什么是i=n?
by 豌豆射手皮0608 @ 2019-02-06 22:11:28
minn的初值是0可海星?
by t162 @ 2019-02-06 22:11:33
@[Bambusoideae](/space/show?uid=106140) ooo
by ewqewqewq @ 2019-02-06 22:12:30
最下面有个点怎么不对
```c
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int a[105],used[105],n,len,m,minn=0,sum=0,bj;
bool cmp(const int &x,const int &y)
{
return x>y;
}
void read()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
minn=max(minn,a[i]);
sum+=a[i];
}
sort(a+1,a+n+1,cmp);
}
void dfs(int k,int last,int rest)
{int i,j;
if(k==m)
{
bj=1;return;
}
if(rest==0)
{
for(i=1;i<=n;i++)
if(!used[i])
{used[i]=1;break;}
dfs(k+1,i,len-a[i]);
}
for(i=last+1;i<=n;i++)
{
if(!used&&rest>=a[i])
{
used[i]=1;
dfs(k,i,rest-a[i]);
used[i]=0;
j=i;
while(i<n&&a[i]==a[j])i++;
if(i==n)return;
}
}
}
void solve()
{
for(int i=minn;i<=sum;i++)
{
if(sum%i==0)
{
memset(used,0,sizeof(used));
len=i;
used[1]=1;
bj=0;
m=sum/i;
dfs(1,1,len-a[1]);
if(bj)
{
cout<<len<<endl;break;
}
}
}
}
int main()
{
read();
solve();
return 0;
}
//7
//63 2 44 12 60 35 60
//93
```
by ewqewqewq @ 2019-02-06 22:32:32