呃。。。。。。
~~你题目条件似乎根本没理解清楚的感觉~~
你的代码问题很多
1.N和M分不清楚 ~~(我一开始也分不清楚)~~
2.要从小到大输出所有可能
3.题目上限没搞清楚:0<=n,m,k<=30000(这是萌新最常掉的坑)
1和3很好解决,但2该如何解决呢?
你的代码复杂化了,实际上很简单,边读边处理就可以了。
附上AC代码(希望你不要复制黏贴)
```
#include <bits/stdc++.h>
#define ri register int
#define ISWS(b) ios::sync_with_stdio(b)
using namespace std;
int k,m,n;
int a,b,ans[30001];bool fl = true;
int main(){
scanf("%d%d%d",&k,&m,&n);
for(register int i = 1;i <= m;i ++){
scanf("%d%d",&a,&b);
if((!a && b > 0) || (a && k / a * b >= n)){
fl = 0;
ans[++ ans[0]] = i;
}
}
if(fl) puts("-1");
else {
for(register int i = 1;i <= ans[0];i ++)
printf("%d ",ans[i]);
}
return 0;
}
```
by PluviaLaver @ 2019-12-31 22:15:52
以后看题目仔细点,别漏关键条件。(我去年就因为这个导致我的分很惨)
另外题目里有个关键信息你漏了(我也忘打了):
他一局只放一个技能,不过每个技能都可以放无数次。
by PluviaLaver @ 2019-12-31 22:19:48