1._while_ 循环没有必要,可以直接由 _( k/a)*b>=n_ 来计算伤害是否可以打败Boos。while循环会导致超时。
2.注意在 _(k/a)*b>=n_ 中a可能为0,所以进行一个特殊判定,遇到 _a=0_ 的情况(不消耗法力值,只要伤害是正数就一定能打败boos)直接判断这个技能可以打败boss。
代码:
```c
#include <iostream>
using namespace std;
int main()
{
int a,b,flag=0;
int k,m,n;
cin>>k>>m>>n;
for(int i=1;i<=m;i++)
{
cin>>a>>b;
if(a==0 && b>0)
{
flag=1;
cout<<i<<" ";
continue;
}
if((k/a)*b>=n)
{
flag=1;
cout<<i<<" ";
}
}
if(flag==0){
cout<<"-1"<<endl;
}
return 0;
}
```
by thrznb666 @ 2022-10-02 16:43:06
@[CYF123469](/user/803133) 你不能直接改变 $k$ 啊,应该弄一个局部变量来表示放这个技能时消耗的法力。
而且也不需要模拟放技能的过程,直接用除法算出每个技能能放多少次以及打死boss需要多少次,再比较一下就行了。
by Ja50nY0un9_as_AgNO3 @ 2022-10-02 16:45:16
~~lz分号前打空格码风清奇~~
by New_Beginning @ 2022-10-02 16:56:47
@[Ja50nY0un9](/user/363302) _十分感谢 已经通过了_
by CYF123469 @ 2022-10-02 17:02:41
@[thrznb666](/user/673585) 感谢 我明白了
by CYF123469 @ 2022-10-02 17:03:13