SDUTOJ 贪心 -商人小鑫

题目描写叙述

小鑫是个商人,当然商人最希望的就是多赚钱。小鑫也一样。

这天,他来到了一个遥远的国度。那里有着n件商品,对于第i件商品须要付出ci的价钱才干得到。

当然。对于第i件商品,小鑫在自己心中有一个估价pi:代表着当他买下这件商品后带回他的国家能够卖出的价格。小鑫仅仅能带回m件商品,你能帮他计算一下他最多能赚多少钱么?

输入

输入有多组,到文件结束。(注:数据有非常多组,请用高效率算法)

对于每一组数据。

第一行是n,m。

m≤n≤10000000。

紧接着有n行。每一行有两个数 c ,p。

第i行代表着ci,pi。

ci≤pi

数据都在int范围内 。

输出

对于每组输入数据仅仅输出一行一个数,代表小鑫能赚多少钱。

演示样例输入

4 2
1 2
1 3
2 2
3 4

演示样例输出

3
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define N 10000001
struct node
{
  int ci;
  int pi;
  int bi;
}ls[N];
int cmp(node a,node b)
{
  return a.bi>b.bi;
}
int main()
{
  int n,m,i,j;
  while(~scanf("%d%d",&n,&m))
  {
  int sum=0;
     for(i=0;i<=n-1;i++)
     {
        scanf("%d%d",&ls[i].ci,&ls[i].pi);
        ls[i].bi=ls[i].pi-ls[i].ci;
     }
     sort(ls,ls+n,cmp);
     for(i=0;i<=m-1;i++)
     {
       sum=sum+ls[i].bi;
     }
     printf("%d\n",sum);
  }
   return 0;
}
时间: 2024-10-06 00:09:27

SDUTOJ 贪心 -商人小鑫的相关文章

SDUTOJ懒虫小鑫

题目描写叙述 小鑫是个大懒虫,可是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用.小鑫十分的不开心.不开心归不开心,小鑫还是要做这件事情的. 我们把这个事情简化一下. 有n块矿石,设第i块矿石由两个数字wi和pi表示.分别表示这块石头的重量和能够卖的价钱.小鑫每次仅仅能搬一块矿石去城里卖,所以他决定每次都会搬重量最小的那块. 假设恰好有几块重量相等,那就在这几块中挑选价值最高的带走. 因为路程原因.小鑫每天仅仅能打m个来回.也就意味着他仅仅能卖掉m块矿石. 你能计算出他能得到多少钱么? 输入

小鑫与斐波那契(二)

小鑫与斐波那契(二) Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 通过题(一),小鑫已经知道斐波那契数列是个什么东西喽~~.于是他要给自己提高难度. 在数学上,斐波纳契数列定义为:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 你能帮小鑫算出第n个斐波那契数是多少么? 输入 输入数据为多组,到文件结束. 每组数据为一行一个数n.n<1000000; 输出 对于每组输入,输出一行,为答案.因为数

小鑫爱运动

题目描述 小鑫非常喜欢运动,有一次小鑫去参加110米栏的比赛,一共有10名比赛选手,小鑫是1号,由于跑的太专注,最后冲线的时候不知道自己是第几名,只知道每个人最后的成绩,聪明的你可不可以帮帮他? 输入 多组输入. 先输入一个10, 然后每组输入10个整数,代表10个选手的110米栏成绩m,代表1号到N号的N个选手的成绩m,m范围是(0 < m < 100). 输出 输出只有一行,代表小鑫最后的名次是多少. 因为小鑫长得比较丑,所以如果成绩相同的情况下,小鑫都会排在前面. 示例输入 10 2 5

SDUT3298 小鑫杀怪兽 滚动数组 防TLE

小鑫杀怪兽 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 塔防游戏 是一类很出名的游戏,在游戏里,你需要建造一些防御塔来攻击怪兽从而保卫小鑫国王.现在又有一波怪兽来袭了,你需要知道小鑫国王能否顶住怪兽的攻击. 怪兽所走的路是一条直线,这条直线上有N个格子(连续编号从1到N).在怪兽敌人赶来之前,你需要建造M个防御塔.每个防御塔的攻击范围是[L, R],意味着这个防御塔可以攻击从L到R之间所有的敌人.当某个怪兽待在第i个位置时

小鑫与小伙伴

小鑫与小伙伴 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 这天,小鑫决定与他的小伙伴们玩一个游戏. 游戏规则是这样的:他们将会按照随机顺序围坐成一个圈,顺时针从1开始依次编号.之后从1号开始沿顺时针报数.当数到第m个人时那个人就要退出游戏.这样进行下去一直到最后只剩下一个人.它就是胜利者. 如果告诉你小鑫朋友的数量n,小鑫的编号x,你能告诉我小鑫赢得游戏了么? 输入 输入数据为多组,到文件结束. 每一组数据有一行,三个数,

小鑫的城堡

题目描述 从前有一个国王,他叫小鑫.有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸.小鑫希望任意两个房间有且仅有一条路径可以相通.小鑫现在把设计图给你,让你帮忙判断设计图是否符合他的想法.比如下面的例子,第一个是符合条件的,但是,第二个不符合,因为从5到4有两条路径(5-3-4和5-6-4). 输入 多组输入,每组第一行包含一个整数m(m < 100000),接下来m行,每行两个整数,表示了一条通道连接的两个房间的编号.房间的编号至少为1,且不超过100000

Java练习 SDUT-2733_小鑫の日常系列故事(二)——石头剪子布

小鑫の日常系列故事(二)--石头剪子布 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小鑫在上幼儿园的时候,喜欢跟小伙伴健健玩石头剪子布的游戏 ,你能帮他们判断谁胜谁负么? Input 输入有两行,每一行都有可能为"Rock"(石头),"Scissors"(剪子),"Cloth"(布).第一行为小鑫的选择,第二行为健健的选择. Output 输出有一行,如果小鑫赢了

Java练习 SDUT-3106_小鑫数数儿

小鑫数数儿 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 某天小鑫忽然得到了许多的数字,他很好学,老师给他布置了一个任务,求出这些数字中,小于他们平均数.等于他们平均数.大于他们平均数的数字的数量是多少.(对于出现的平均数,保证都是整数,不会出现浮点数) Input 多组输入. 对于每次的输入,第一行一个整数N(1 <= N <= 10),代表数字的个数. 接下来的一行,输入N个整数M(0 <= M <

Java练习 SDUT-2737_小鑫の日常系列故事(六)——奇遇记

小鑫の日常系列故事(六)--奇遇记 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 今天,小鑫在山上玩的时候,意外被推下了悬崖. 当然,掉下悬崖之后必然有奇遇.(剧情就是这么坑爹)就狗血的碰到了野人A和野人B.然后两位野人就给了他一本武功秘籍. 这是一本强大的武功秘籍(好像武功秘籍一直都很强大).共有40层的内功心法.当他练到第n层的时候,就可以借助高强的武功离开这个地方.你已经知道的是:练成第一层需要一天,练成第二