Problem Description
Input
Output
Sample Input
1 7 2 3 3 4 4
Sample Output
2.33
Hint
Source
#include <stdio.h>
#include <stdlib.h>
struct set
{
int p;
int h;
} a[1001];
void st(struct set a[],int l,int r)
{
struct set key=a[l];
int i=l,j=r;
if(l>=r)
return;
if(l<r)
{
while(i<j)
{
while(i<j&&a[j].p>key.p) j--;
a[i]=a[j];
while(i<j&&a[i].p<key.p)i++;
a[j]=a[i];
}
a[i]=key;
st(a,l,i-1);
st(a,i+1,r);
}
}
int main()
{
int c,i,k,n,m;
double s;
scanf("%d",&c);
for(k=1; k<=c; k++)
{
scanf("%d%d",&n,&m);
for(i=0; i<m; i++)
scanf("%d%d",&a[i].p,&a[i].h);
st(a,0,m-1);
s=0;
for(i=0; i<m; i++)
{
if(n>a[i].p*a[i].h)
{
s=s+a[i].h;
n=n-a[i].p*a[i].h;
}
else
{
s=s+n*1.0/a[i].p;
break;
}
}
printf("%.2lf\n",s);
}
return 0;
}
加油喔!···