题目: 农场主 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;
}