COJ1229-压缩文件
来源:互联网 发布:天翼飞young客户端mac 编辑:程序博客网 时间:2024/06/07 13:41
1229: 压缩文件
Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 100 Solved: 50
Description
Staginner得知gestapolur的y570上有《使命召唤8》时,便决定copy到自己的本子上亲自过把瘾,但无奈《使命召唤8》如果压缩成一个文件Staginner的U盘是装不下的。
好在gestapolur告诉Staginner使用WinRAR可以在压缩的时候设定压缩分卷大小,这样就可以在压缩的时候将压缩文件分成若干个part且这些文件总大小和压缩成一个文件时是一样的。比如如果压缩成一个文件时《使命召唤8》是10250MB,设定的压缩分卷大小是500MB,那么最后就会产生21个part,其中有20个是500MB的,还有1个是250MB的,这也说明了在压缩过程中会优先生成大小等于压缩分卷值的part,当剩余的文件大小不足压缩分卷值时,剩余文件会作为最后一个part生成。
已知Staginner一共有N个U盘及其各自的剩余容量,《使命召唤8》压缩成一个文件时的大小是M,现在他想知道如果一个U盘里面只能存储一个part,那么在保证使用的U盘数尽可能少的情况下,压缩分卷大小最大可以设置为多少?
Input
输入包含若干组数据,每组数据的第一行为一个正整数N(1<=N<=100),和一个正整数M(0< M<=10^9),表示的含义同上,其中M的单位为MB。接下一行有N个不超过10^9的正整数,分别描述了N个U盘的剩余容量,单位同样为MB。
数据组数不超过100组,读入以EOF结束。
Output
对于每组数据,用一行输出一个整数,表示若一个U盘里面只能存储一个part,在保证使用的U盘数尽可能少的情况下,设定的压缩分卷大小的最大值。
如果Staginner无论如何设定压缩分卷大小,都没办法在一个U盘里面只能存储一个part前提下存储下所有的part,输出-1即可。
Sample Input
3 1500
500 500 500
4 1500
100 600 700 800
3 1500
200 1000 400
Sample Output
500
800
-1
Hint
Source
CSU Monthly 2012 Jan.
题目大意: 给你n个容量各不相同的U盘,要将一个大小为m的文件分割成若干固定大小部分,若剩余不足固定大小,则为剩余量,要用这些U盘装下这个文件,问固定大小最大是多少?
解题思路:类似模拟,从最大容量的U盘开始,逐一去试即可。因为最大固定大小一定是U盘容量中的一个。
#include<iostream>#include<string>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<map>#include<iomanip>using namespace std;const int MAXN=1e4;int a[105];int n,m;int main(){ while(cin>>n>>m) { for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); int ans=0; bool flag=false; for(int i=n;i>=1;i--) { if(flag) break; int num=m/a[i]; int res=m%a[i]; int sum=0,cnt=0; for(int j=n;j>=1;j--) { if(a[j]>=a[i]) { cnt++; } if(cnt==num&&res==0) { flag=true; ans=a[i]; break; } if(cnt==num&&res!=0) { if(j>1&&a[j-1]>=res) { flag=true; ans=a[i]; break; } } } } if(ans==0) cout<<-1<<endl; else cout<<ans<<endl; } return 0;}
- COJ1229-压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件:
- 压缩文件
- 压缩文件
- Java压缩文件和解压缩文件
- .NET压缩文件
- java 压缩文件
- C#压缩文件
- java压缩文件
- C# 压缩文件
- QT与Python混合编程经验记录
- 北大新方正,路在何方?
- nginx 配置高并发
- Jenkins Maven checkstyle findbugs pmd静态代码检查
- springboot分布式session同步
- COJ1229-压缩文件
- 学习淘淘商城第一百零六课(Mycat简单入门)
- 【KF8V111控制器】I/O配置
- 美团Codem编程比赛资格赛:数码
- CSS 样式(二)
- 对软件开发感到惊讶的共识
- 入门Webpack,看这篇就够了
- 在子线程创建并显示一个Toast
- 三种经典iPhone上网络抓包方法详解