蜜汁95分????

P6188 [NOI Online #1 入门组] 文具订购

微笑的坏坏 @ 2020-04-10 20:48:34

#include<bits/stdc++.h>
using namespace std;
int a,b,sum,ans7,ans4,ans3;
int main()
{
    int n;
    cin>>n;
    sum=n%7;
    while(true)
    {
        if(sum%3==0)
        {
            ans3+=(sum/3);
            break;
        }
        if(sum%4==0)
        {
            ans4+=(sum/4);
            break;
        }
        sum+=7;
    }
    if(sum>n)
    {
        cout<<-1<<endl;
        return 0;
    }
    n-=sum;
    n/=7;
    ans7=n/2;
    ans4+=n/2;
    ans3+=n/2;
    ans4+=n%2;
    ans3+=n%2;
    cout<<ans7<<' '<<ans4<<' '<<ans3<<endl;
    return 0;
}

主要就是看%7(因为4+3是7的倍数,7自然也是7的倍数,求出多出来的几个3或几个4)(画个图就行啦)

总之,求解!!!


by bovine__kebi @ 2020-04-10 20:48:56

所以你是WA?


by bovine__kebi @ 2020-04-10 20:49:02

@微笑的坏坏


by 微笑的坏坏 @ 2020-04-10 20:49:48

没错,第14点


by 微笑的坏坏 @ 2020-04-10 20:50:01

@bovine__kebi


by Evan20080715 @ 2020-08-21 21:39:44

我跟你错的一模一样


by liuziyan @ 2020-08-26 20:45:40

试一下n=99 你这个代码输出的是6 9 7 但正解应该是 6 6 11 数据中的第14个点我也下了一下,n=71 你这个代码输出的4 7 5 但正解应该是4 4 9 (虽然我也没看出哪错了)


by lcyxds @ 2021-04-18 07:52:52

@微笑的坏坏 输入 15 时答案是 0 0 5 你的程序输出 0 3 1

问题出在你这个程序碰到 8 之后就会拆成两个 4 进行处理


|