CodeForces 16B Burglar and Matches (贪心)

题意   一个窃贼到火柴仓库偷火柴   仓库有m个容器    第i个容器有a[i]个火柴盒  其中每个火柴盒中有b[i]根火柴   窃贼最大可以拿n个火柴盒  输入n m  然后m行a[i]  b[i]   求窃贼最多能偷多少根火柴

很水的贪心  直接每次选当前火柴最多的盒子  n减去盒子数  直到n=0 


#include<cstdio>  
#include<cstring>  
#include<algorithm>  
using namespace std;  
const int M = 25;  
int a[M], b[M], c[M], n, m, ans;  
  
bool cmp (int i, int j)  
{  
    return b[i] > b[j];  
}  
  
int main()  
{  
    scanf ("%d%d", &n, &m);  
    for (int i = 1; i <= m; ++i)  
    {  
        c[i] = i;  
        scanf ("%d%d", &a[i], &b[i]);  
    }  
    sort (c + 1, c + m + 1, cmp);  
    ans = 0;  
    for (int i = 1; i <= m; ++i)  
    {  
        if (n >= a[c[i]])  
        {  
            n -= a[c[i]];  
            ans += a[c[i]] * b[c[i]];  
        }  
        else  
        {  
            ans += n * b[c[i]];  
            break;  
        }  
    }  
    printf ("%d\n", ans);  
    return 0;  
}  

A burglar got into a matches warehouse and wants to steal as many matches as possible. In the warehouse there are mcontainers, 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 n matchboxes 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.

Sample test(s)
input
7 3
5 10
2 5
3 6
output
62
input
3 3
1 3
2 2
3 1
output
7










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值