codeforces16B

Burglar and Matches

 CodeForces - 16B 

A burglar got into a matches warehouse and wants to steal as many matches as possible. In the warehouse there are m containers, in the i-th container there are ai matchboxes, and each matchbox contains bi matches. All the matchboxes are of the same size. The burglar's rucksack can hold n matchboxes exactly. Your task is to find out the maximum amount of matches that a burglar can carry away. He has no time to rearrange matches in the matchboxes, that's why he just chooses not more than nmatchboxes so that the total amount of matches in them is maximal.

Input

The first line of the input contains integer n (1 ≤ n ≤ 2·108) and integer m (1 ≤ m ≤ 20). The i + 1-th line contains a pair of numbers ai and bi (1 ≤ ai ≤ 108, 1 ≤ bi ≤ 10). All the input numbers are integer.

Output

Output the only number — answer to the problem.

Examples

Input
7 3
5 10
2 5
3 6
Output
62
Input
3 3
1 3
2 2
3 1
Output
7

sol:显然取个数多的,然后直接按题意贪心模拟即可
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
    ll s=0;
    bool f=0;
    char ch=' ';
    while(!isdigit(ch))
    {
        f|=(ch=='-'); ch=getchar();
    }
    while(isdigit(ch))
    {
        s=(s<<3)+(s<<1)+(ch^48); ch=getchar();
    }
    return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
    if(x<0)
    {
        putchar('-'); x=-x;
    }
    if(x<10)
    {
        putchar(x+'0'); return;
    }
    write(x/10);
    putchar((x%10)+'0');
    return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=100005;
int n,m;
struct Match
{
    int Ges,Cnt;
}Box[N];
inline bool cmp_Cnt(Match p,Match q)
{
    return p.Cnt>q.Cnt;
}
int main()
{
    int i,ans=0;
    R(n); R(m);
    for(i=1;i<=m;i++)
    {
        R(Box[i].Ges); R(Box[i].Cnt);
    }
    sort(Box+1,Box+m+1,cmp_Cnt);
    for(i=1;i<=m&&n;i++)
    {
        ans+=min(n,Box[i].Ges)*Box[i].Cnt;
        n-=min(n,Box[i].Ges);
    }
    Wl(ans);
    return 0;
}
/*
Input
7 3
5 10
2 5
3 6
Output
62

Input
3 3
1 3
2 2
3 1
Output
7
*/
View Code
 

猜你喜欢

转载自www.cnblogs.com/gaojunonly1/p/10787440.html
今日推荐