C - Songs Compression

这篇具有很好参考价值的文章主要介绍了C - Songs Compression。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ivan has nn songs on his phone. The size of the ii-th song is a_iai​ bytes. Ivan also has a flash drive which can hold at most mm bytes in total. Initially, his flash drive is empty.

Ivan wants to copy all nn songs to the flash drive. He can compress the songs. If he compresses the ii-th song, the size of the ii-th song reduces from a_iai​ to b_ibi​ bytes (b_i < a_ibi​<ai​).

Ivan can compress any subset of the songs (possibly empty) and copy all the songs to his flash drive if the sum of their sizes is at most mm. He can compress any subset of the songs (not necessarily contiguous).

Ivan wants to find the minimum number of songs he needs to compress in such a way that all his songs fit on the drive (i.e. the sum of their sizes is less than or equal to mm).

If it is impossible to copy all the songs (even if Ivan compresses all the songs), print "-1". Otherwise print the minimum number of songs Ivan needs to compress.

Input

The first line of the input contains two integers nn and mm (1 \le n \le 10^5, 1 \le m \le 10^91≤n≤105,1≤m≤109) — the number of the songs on Ivan's phone and the capacity of Ivan's flash drive.

The next nn lines contain two integers each: the ii-th line contains two integers a_iai​ and b_ibi​ (1 \le a_i, b_i \le 10^91≤ai​,bi​≤109, a_i > b_iai​>bi​) — the initial size of the ii-th song and the size of the ii-th song after compression.

Output

If it is impossible to compress a subset of the songs in such a way that all songs fit on the flash drive, print "-1". Otherwise print the minimum number of the songs to compress.

Sample 1

Inputcopy Outputcopy
4 21
10 8
7 4
3 1
5 4
2

Sample 2

Inputcopy Outputcopy
4 16
10 8
7 4
3 1
5 4
-1

Note

In the first example Ivan can compress the first and the third songs so after these moves the sum of sizes will be equal to 8 + 7 + 1 + 5 = 21 \le 218+7+1+5=21≤21. Also Ivan can compress the first and the second songs, then the sum of sizes will be equal 8 + 4 + 3 + 5 = 20 \le 218+4+3+5=20≤21. Note that compressing any single song is not sufficient to copy all the songs on the flash drive (for example, after compressing the second song the sum of sizes will be equal to 10 + 4 + 3 + 5 = 22 > 2110+4+3+5=22>21).

In the second example even if Ivan compresses all the songs the sum of sizes will be equal 8 + 4 + 1 + 4 = 17 > 168+4+1+4=17>16.

题意翻译

现有 n(1≤n≤10^5)个物品,第 i 个物品的重量为 ai​,可以进行 1 次操作使 ai​ 变为 bi​(1≤bi​<ai​≤10^9)。

问最少多少次操作后能将所有物品装入空间为 mm(1≤m≤10^9)的背包。

若无论如何也无法完成,请输出 -1文章来源地址https://www.toymoban.com/news/detail-706186.html

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;
ll n, m; 

ll a[N]; //记录体积压缩前后的差

//记得开long long,输入用scanf,不然会超时
int main()
{
	scanf_s("%lld%lld", &n, &m);
	ll sum1 = 0, sum2 = 0;

	for (ll i = 1; i <= n; i++)
	{
		ll num1, num2;
		scanf_s("%lld%lld", &num1, &num2);
		a[i] = num1 - num2;//记录体积差
		sum1 += num1;      //记录压缩前的体积和
		sum2 += num2;      //记录压缩后的体积和
	}

	if (sum2 > m)   //如果把所有歌曲都压缩还装不下,则返回-1
	{
		cout << -1 << endl;
		return 0;
	}

	sort(a + 1, a + n + 1,greater<int>());  //对体积差进行降序排序

	ll i = 1, cnt = 0;

	while (sum1 > m)
	{
		sum1 -= a[i];  
		i++;
		cnt++;
	}

	cout << cnt << endl;
}

到了这里,关于C - Songs Compression的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • A Survey on Model Compression for Large Language Models

    本文是LLM系列文章,关于模型压缩相关综述,针对《A Survey on Model Compression for Large Language Models》的翻译。 大型语言模型(LLM)以显著的成功彻底改变了自然语言处理任务。然而,它们强大的规模和计算需求给实际部署带来了重大挑战,尤其是在资源受限的环境中。随着这些

    2024年02月11日
    浏览(49)
  • 出现Error: Cannot find module ‘compression-webpack-plugin‘错误

    解决:npm install --save-dev compression-webpack-plugin@1.1.12 版本问题

    2024年02月13日
    浏览(45)
  • MySQL 8.0 Reference Manual(读书笔记78节-- InnoDB Table and Page Compression (1))

    This section provides information about the InnoDB table compression and InnoDB page compression features. The page compression feature is also referred to as transparent page compression. Using the compression features of InnoDB, you can create tables where the data is stored in compressed form. Compression can help to improve both raw performance and scala

    2024年03月28日
    浏览(47)
  • MySQL 8.0 Reference Manual(读书笔记79节-- InnoDB Table and Page Compression (2))

    Overall application performance, CPU and I/O utilization and the size of disk files are good indicators of how effective compression is for your application. This section builds on the performance tuning advice and shows how to find problems that might not turn up during initial testing. To dig deeper into performance considerations for compressed tables, y

    2024年03月28日
    浏览(58)
  • improve-gzip引入后node_modules中.cache compression-webpack-plugin占用内存过多

    1.Gzip Gzip(GNU zip)是一种常见的文件压缩格式和压缩算法,通常用于在 Web 服务器上对静态资源文件进行压缩,以减小文件大小并加快文件传输速度。在前端开发中,经常会使用 Gzip 压缩来优化网站的性能。 Gzip 压缩通过移除文件中的重复数据和不必要的信息来减小文件大小

    2024年02月20日
    浏览(41)
  • 【论文笔记】CAT-Net: Compression Artifact Tracing Network for Detection and Localization of Image Splicing

    CAT-Net:用于图像拼接检测和定位的压缩伪迹跟踪网络 发布于WACV2021 代码链接:https://github.com/mjkwon2021/CAT-Net 检测和定位图像拼接已经成为打击恶意伪造的重要手段。局部拼接区域的一个主要挑战是 区分真实和篡改的区域的固有属性,如压缩伪迹 。我们提出了CAT-Net,一个 包含

    2024年02月10日
    浏览(49)
  • ◎ 增量更新jar包,报错问题(It has been compressed and nested jar files must be stored without compression)

    报错信息 我们在增量更新jar时,有新增的依赖包。重新打包之后,报错: It has been compressed and nested jar files must be stored without compression.Please check the mechanism userd to create your executable jar file. 报错原因 这个报错的大致意思是:它已经被压缩,嵌套的jar文件必须在没有压缩的情况下

    2024年02月08日
    浏览(31)
  • vue中webpack配置compression-webpack-plugin打包压缩和优化,terser-webpack-plugin在构建过程中对 JavaScript 代码进行压缩和优化

    参考地址:https://v4.webpack.js.org/plugins/compression-webpack-plugin/ 一、compression-webpack-plugin的使用,安装插件 二、在 webpack 配置中,require 或 import 引入 三、配置 参考地址:https://v4.webpack.js.org/plugins/terser-webpack-plugin/ 一、安装terser-webpack-plugin 二、在 Webpack 配置中引入 三、配置

    2024年04月14日
    浏览(55)
  • 开发语言漫谈-C语言

           个人认为C语言是最伟大的开发语言(没有之一)。C语言开创了高级语言的新时代。比C更低级的是汇编语言,这个东西就是反人类的玩意。之后的语言或多或少都受C语言的影响。更神奇的是直到现在,C语言还有生命力。C语言的发明人丹尼斯·里奇是图灵奖得主,C语

    2024年04月13日
    浏览(74)
  • 主流开发语言和开发环境?

    主流开发语言 Java 简介 :Java 是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年发布,后由Oracle公司接手。Java具有“一次编写,到处运行”的特性,它的跨平台能力得益于Java虚拟机(JVM)。Java被广泛应用于企业级应用开发、移动应用(特别是Android应用)、

    2024年02月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包