COJ1229 壓縮檔案

2021-08-02 20:00:18 字數 1742 閱讀 9966

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

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1e4;

int a[105];

int n,m;

int main()

if(cnt==num&&res==0)

if(cnt==num&&res!=0)}}

}if(ans==0) cout

<<-1

cout

0;}

怎樣壓縮檔案 如何給壓縮檔案加密

我們生活 工作中,會經常遇到壓縮檔案 給檔案加密的事情。有時候,是單純不想讓別人看到 有時候,是提供 但不能共享,用來獲取收益等等。那麼怎麼將乙個檔案壓縮,或者乙個資料夾壓縮尼?同時又怎麼給這個壓縮檔案加密尼?下面大家和小編一起看一下吧。壓縮檔案 如圖。找到需要壓縮的檔案 資料夾,右擊檔案,點選新增...

C 壓縮檔案

首先新增system.io.com pression 注意deflatestream類不能用來壓縮大小超過4gb的檔案。gzipstream同樣不能用來壓縮大小超過4gb的檔案。public void compressfile string srcfile,string dstfile if fil...

C 壓縮檔案

c 壓縮檔案 方法1 filepath想要壓縮檔案的位址 zippath輸出壓縮檔案的位址 private void getfiletozip string filepath,string zippath 方法2 private void filetozip string path,string a...