问题1:出现RE 是因为死循环导致的吗? 还是其他原因导致的。请大佬指出。(PS:当我装不满背包的情况下就会出现RE)
下方代码中有具体问题描述
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int n, t;
struct node{
double weight, value;
}c[200];
bool cmp(node a,node b) {
return (a.value / a.weight) > (b.value / b.weight);
}
int main()
{
cin >> n >> t;
for (int i = 0; i < n; i++) {
cin >> c[i].weight >> c[i].value;
}
sort(c, c + n, cmp);
double ans=0;
int cnt = 0;
while (t&&cnt!=n) {
if (t >= c[cnt].weight) {
t -= c[cnt].weight;
ans += c[cnt].value;
cnt++;
continue;
}
if (t > 0 && t < c[cnt].weight) {
ans += (t)*(c[cnt].value / c[cnt].weight);
cnt++;
t = 0;
}
}
printf("%.2f",ans);
return 0;
}