站外题求助
  • 板块学术版
  • 楼主priority_M
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/3/15 20:47
  • 上次更新2023/10/23 21:28:05
查看原帖
站外题求助
568616
priority_M楼主2023/3/15 20:47

题目: 农场主 W 有 N 只小羊,小羊们的脾气很大,时不时就会和你“顶牛”。W 非常喜欢它们,不想让它们受伤,便想了一个办法。他在农场里钉了 M 根木桩,这些木桩在一条直线上,且相邻两根木桩的距离均为 1米,然后将这些小羊拴在一些木桩上,当然要求相邻两只羊的距离不能过小,太小了它们又要打架了,当距离达到 K 米或以上时它们就会相安无事。 现在的问题是:用这 M 根木桩来拴 N 只小羊,能否达到规定的距离要求?不能则输出 No,以及按要求最多能拴的羊的只数;能则输出 Yes,以及相邻两只羊最小距离的最大值。 输入 一行,三个正整数: M N K。 输出 两行。 第 1 行:能达到要求输出 Yes,不能输出 No。 第 2 行:能达到要求输出相邻两只羊最小距离的最大值,不能输出按要求最多能拴的羊的只数。 样例: 输入 12 6 4 输出 No 3

输入 12 4 2 输出 Yes 3

数据范围: 25%的数据,N≤1024; 40%的数据,N≤1000000; 100%的数据,1≤M≤1000000000,2≤N≤1000000000,1≤K≤100000。 题目链接 这题我的思路应该没毛病,为啥有错? 麻烦大佬解答一下,十分感谢。 代码:

#include<iostream>

using namespace std;

long long m,n,k;
int main(){
    cin >> m >> n >> k;
    long long c = m / n + 1;
    if(k > c){
        cout << "No" << endl;
        cout << (m / k) << endl;
    } else {
        cout << "Yes" << endl;
        cout << c << endl; 
    }
    return 0;
}
2023/3/15 20:47
加载中...