1 条题解

  • 0
    @ 2025-2-14 21:11:41

    C++ :

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    struct p
    {
    	int num;
    	int pr;
    }a[1005];
    int comp(const p &a,const p &b)
    {
    	if(a.pr<b.pr)return 1;
    	else return 0;
    }
    int main()
    {
    	int m,n;
    	scanf("%d%d",&m,&n);
    	for(int i=1;i<=n;++i)
    	 scanf("%d%d",&a[i].pr,&a[i].num);
    	sort(a+1,a+n+1,comp);
    	int i=0,ans=0;
    	while(m>0)
    	{
    		++i;
    		if(m>=a[i].num)
    		{
    			ans+=a[i].num*a[i].pr;
    			m-=a[i].num;
    			continue;
    		}
    		if(m<=a[i].num)
    		{
    			ans+=m*a[i].pr;
    			m=0;
    			continue;
    		}
    	}
    	printf("%d",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    683
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者