问题标题: 酷町堂:三十酷町币!!!2681 分弹珠样例过了0分

0
1
已解决
曾凡一
曾凡一
新手光能
新手光能

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;
}
 


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;
        }

 

0
0
0
我要回答