新手光能
2681 分弹珠我样例过了,但是Wrong Answer 0分,大佬们帮忙找找茬
#include<iostream>
#include<cstring>
using namespace std;
int cnt;
int n[10];
int main()
{
while(true)
{
int f[20010];
memset(f,0,sizeof(f));
int sum=0;
bool flag=false;
for(int i=1; i<=6; i++)
{
cin>>n[i];
sum+=n[i]*i;
if(n[i])
flag=true;
}
if(!flag)
break;
cnt++;
if(sum%2!=0)
{
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
continue;
}
int m=sum/2;
for(int i=1; i<=6; i++)
{
for(int j=m; j>=i; j--)
{
for(int k=0; k<=n[i]; k++)
{
if(k*i>j) break;
f[j]=max(f[j],f[j-k*i]+k*i);
}
}
}
if(f[m]*2==sum)
cout<<'$'<<cnt<<":可以分割"<<endl<<endl;
else
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
}
return 0;
}
高级天翼
我复制了你的程序,改了改AC;
if(f[m]*2==sum)
cout<<'$'<<cnt<<":可以分割"<<endl<<endl;
else
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
这个冒号是英文的冒号,不是中文的,样例输出错了。
蒋智航在2018-08-10 15:25:56追加了内容
if(f[m]*2==sum)
cout<<'$'<<cnt<<":可以分割"<<endl<<endl;
else
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
蒋智航在2018-08-10 15:26:45追加了内容
还有这个
if(sum%2!=0)
{
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
continue;
}
应是
if(sum%2!=0)
{
cout<<'$'<<cnt<<":不能分割"<<endl<<endl;
continue;
}