哪里错了?为什么5个测试点都过不了```
#include<stdio.h>
struct stack{
int m;
int value;
double p;
};
int main(){
int N,T;
scanf("%d%d",&N,&T);
struct stack a[N];
int i,s;
double t;
for(i=0;i<N;i++){
scanf("%d%d",&a[i].m,&a[i].value);
a[i].p=a[i].value/a[i].m;
}
int k=0;
struct stack ps;
for(i=0;i<N-1;i++){
for(k=i+1;k<N;k++){
if(a[k].p>a[i].p){
ps=a[k];
a[k]=a[i];
a[i]=ps;
}
}
}
s=i=t=0;
while(T-s>0){
s+=a[i].m;
t+=a[i].value;
i++;
}
if(s>T){
i--;
k=s-T;
t-=k*a[i].p;
}
printf("%.2f",t);
return 0;
}