zoukankan      html  css  js  c++  java
  • cf 16B

    B. Burglar and Matches
    time limit per test
    0.5 second
    memory limit per test
    64 megabytes
    input
    standard input
    output
    standard output

    A burglar got into a matches warehouse and wants to steal as many matches as possible. In the warehouse there are m containers, in thei-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 andbi (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
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<cstdlib>
    #include<algorithm>
    using namespace std;
    int n,m;
    struct node
    {
          int x,y;
    }e[30];
    bool cmp(node a,node b)
    {
          return a.y>b.y;
    }
    int main()
    {
          int ans=0;
          scanf("%d%d",&n,&m);
          for(int i=1;i<=m;i++)
                scanf("%d%d",&e[i].x,&e[i].y);
          sort(e+1,e+1+m,cmp);
          for(int i=1;i<=m;i++)
          {
                if(n>=e[i].x)
                {
                    ans+=e[i].x*e[i].y;
                    n=n-e[i].x;
                }
                else
                {
                      ans+=e[i].y*n;
                      break;
                }
          }
          printf("%d
    ",ans);;
          return 0;
    }
    

      

  • 相关阅读:
    BoundsChecker下载
    大型系统内部资源定位的途径
    架构的焦点
    为什么日志只应该有三个级别
    回收站引发ORACLE查询表空间使用缓慢
    题目记录
    广搜入门 待改进的广搜
    归并排序的使用
    大数数组中滚动数组的应用
    多重背包问题
  • 原文地址:https://www.cnblogs.com/a972290869/p/4224318.html
Copyright © 2011-2022 走看看