#include<stdio.h>
void main()
{
int n,t[11][2],m,i,j,k,p;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d %d",&t[i][0],&t[i][1]);
scanf("%d",&m);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(t[i][0]<t[j][0])
{
k=t[i][0];p=t[i][1];
t[i][0]=t[j][0];t[i][1]=t[j][1];
t[j][0]=k;t[j][1]=p;
}
k=0;
for(i=0;i<n;i++)
while(t[i][1])
{
if(m-t[i][0]>=0)
{
m-=t[i][0];k++;t[i][1]--;
}
else
break;
if(m==0)
printf("%d\n",k);
}
if(m!=0)
printf("-1\n");
}
}
题目: http://219.219.54.201:8080/JudgeOnline/showproblem?problem_id=1279