不懂就问
  • 板块灌水区
  • 楼主erzhongxiaohuo
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/12 10:28
  • 上次更新2023/11/12 12:16:29
查看原帖
不懂就问
746745
erzhongxiaohuo楼主2023/11/12 10:28

有dalao帮忙看一看代码吗???

十个WA,求看看!!!


题目

小明今天来到了著名的旅游城市厦门,小明想要好好感受一下厦门的风土人情和美景美食。

今天小明打算休息一下,玩一款一直想玩的游戏,一开始有 nn 个小怪,他们所在的位置分别为 a ,小明每次可以发射一枚冲击力为 r 的导弹,假设击中位置为 c,那么对于一个位置为 x 的小怪,

如果 x=c,那么这个小怪将会被导弹击杀;

如果 x<c,那么小怪将受到导弹的冲击,位置更改为 x-r;

如果 x>c,那么小怪将受到导弹的冲击,位置更改为 x+r;

除了直接击杀小怪,如果小怪的位置 <=0<=0,那么将会掉下悬崖,也会直接被击杀。

现在小明想知道至少需要发射多少枚导弹可以将所有的小怪击杀,由于小明很懒,没有时间计算这个问题,请你帮助小明计算一下这个问题。


代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,r,ans=0,k=0;
    int l[100100];
    cin>>n>>r;
    for(int i=1;i<=n;i++){
        cin>>l[i];
    }
    sort(l+1,l+1+n);
    if(r==0){
        cout<<n<<endl;
    }
    else{
        for(int i=n;i>=1;i--){
            ans++;
            k+=r;
            if(l[i-1]<=k)break;
        }
        cout<<ans<<endl;
    }
    return 0;
}
2023/11/12 10:28
加载中...