HELP

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

⚡zhangjingcan⚡ @ 2020-04-02 13:30:08

#include<bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    if(n==0)cout<<"0 0 0\n";
    else if(n>0&&n<3)cout<<"-1\n";
    else {
        for(int i=n/14;i>=0;i--){
            for(int j=i;j<=n/4;j++){
                for(int k=j;k<=n/3;k++){
                    if(i*7+j*4+k*3==n){
                        cout<<i<<" "<<j<<" "<<k<<"\n";
                        return 0;
                    }
                }
            }
        }
    }
    cout<<"-1\n";
    return 0;
}

为什么85分?


by bovine__kebi @ 2020-04-02 14:00:32

Wa?还是TLE?


by bovine__kebi @ 2020-04-02 14:02:53

@zhangjingcan


by cmaths @ 2020-04-02 14:09:50

@bovine__kebi WA


by ⚡zhangjingcan⚡ @ 2020-04-02 18:36:45

@bovine__kebi WA


by 微笑的坏坏 @ 2020-04-11 08:31:22

@zhangjingcan 您好,请注意您代码的以下片段:

        for(int i=n/14;i>=0;i--){
            for(int j=i;j<=n/4;j++){
                for(int k=j;k<=n/3;k++){

实际上,应该是:

        for(int i=n/14;i>=0;i--){
            for(int j=i;j<=n/4;j++){
                for(int k=i;k<=n/3;k++){

k与j都是和i对齐的。


by ⚡zhangjingcan⚡ @ 2020-04-11 10:52:42

@微笑的坏坏

#include<bits/stdc++.h>
using namespace std;
int main(int argc, char** argv){
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    if(n==0)cout<<"0 0 0\n";
    else {
        for(int i=n/14;i>=0;i--){
            for(int j=i;j<=n/4;j++){
                for(int k=i;k<=n/3;k++){
                    if(i*7+j*4+k*3==n){
                        cout<<i<<" "<<j<<" "<<k<<"\n";
                        return 0;
                    }
                }
            }
        }
    }
    cout<<"-1\n";
    return 0;
}

by ⚡zhangjingcan⚡ @ 2020-04-11 10:53:09

这样就95分了,错了第一个点


by 微笑的坏坏 @ 2020-04-11 11:09:14

那就不太清楚了

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=n/14;i>=0;i--)
    {
        for(int j=i;j<=n/4;j++)
        {
            for(int k=i;k<=n/3;k++)
            {
                if(i*7+4*j+3*k==n)
                {
                    cout<<i<<' '<<j<<' '<<k<<endl;
                    return 0;
                }
            }
        }
    }
    cout<<-1<<endl;
    return 0;
}

这是我的代码,可以看看


by 微笑的坏坏 @ 2020-04-11 11:09:28

@zhangjingcan


by ⚡zhangjingcan⚡ @ 2020-04-11 11:35:07

@微笑的坏坏 谢谢


|