1 solutions

  • 0
    @ 2024-12-11 0:25:37

    C++ :

    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    struct pos
    {
    	int cost;
    	int num;
    }f[10001];
    int cmp(pos i,pos j)
    {
    	if(i.cost==j.cost)
    	{
    		return i.num>j.num;
    	}
    	else
    	{
    		return i.cost<j.cost;
    	}
    }
    int main()
    {
    	int m,n;
    	cin>>m>>n;
    	for(int i=1;i<=n;++i)
    	{
    		cin>>f[i].cost>>f[i].num;
    	}
    	sort(f+1,f+n+1,cmp);
    	
    	long long ans=0;
    	for(int i=1;i<=n;++i)
    	{
    		while(m!=0&&f[i].num!=0)
    		{
    			--m;
    			ans=ans+f[i].cost;
    			--f[i].num;
    		}
    		if(m==0)
    		{
    			break;
    		}
    	}
    	
    	cout<<ans;
    	return 0;
    	
    }
    
    • 1

    Information

    ID
    700
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By