第一,$a[i] = 0$ 会死循环,第二,变量 $x$ 会爆 long long
by yzk050822 @ 2024-03-31 19:58:56
爆内存了,把if判断加到while循环里就好了
```
#include<bits/stdc++.h>//万能头文件
using namespace std;
int a[30010],b[30010];//改的是这里
int main(){
int k,m,n;//还有这里
cin>>k>>m>>n;
bool flag=1;
for(int i=0;i<m;i++)
{
cin>>a[i]>>b[i];
}
for(int i=0;i<m;i++)
{
int x=n;
int y=k;
while(y>=a[i])//判断条件不用写y>0,因为a[i]不可能等于零或小于零
{
x-=b[i];
y-=a[i];
if(x<=0)//这里也改了
{
cout<<i+1<<" ";
flag=0;
break;
}
}
}
if(flag)
{
cout<<-1;
}
return 0;
}
```
by bling_bling @ 2024-03-31 20:10:23
@[bling_bling](/user/799767) 说错了,是爆时间了
by bling_bling @ 2024-03-31 20:11:32