1
已解决
陈喆鹏
资深光能
资深光能
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct A{
int l,s;
}a[20];
bool cmp(A a,A b)
{
return a.s>b.s;
}
int n,v,v1;
bool B()
{
int x=0;
for(int i=0;i<n;i++)x+=a[i].l*a[i].s;
return x>=v;
}
int main()
{
int sum=0;
cin>>n>>v;
for(int i=0;i<n;i++)cin>>a[i].s>>a[i].l;
sort(a,a+n,cmp);
int i,w,c;
while(B())
{
v1=v;
for(i=0;i<n;i++)
{
if(a[i].l>0)
{
c=min(a[i].l,v1/a[i].s);
if(v1/a[i].s==0)c=1;
a[i].l-=c;
v1-=c*a[i].s;
}
cout<<v1<<endl;
if(v1<1)break;
}
sum++;
}
cout<<sum;
return 0;
}
错了