SUSEの4番目の宿題

1つ:ゲーム
トピック説明リンク:NOIP2012改良グループ再戦キングゲーム(欲張りソリューション+高精度計算)

2:LCS
トピック説明リンク:HDU 1159

3:5
カタランシーケンスカタランシーケンステンプレート:カタランシーケンス

4:
圧縮後に削減できる量を保存し、差を並べ替え、圧縮されていないメモリの合計を記録し、この値をハードディスクのサイズと比較します(大きい場合)、以前に記録された差を減らし、結果を減らします1回+1。すべての削減が目標に達しない場合は、-1を出力します。

コード

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

int a[1010];

int main()
{
    
    
    int n, m;
    cin >> n >> m;
    int sum = 0;
	
	for(int i = 0; i < n; i++)
	{
    
    
		int x, y;
		cin >> x >> y;
		sum += x;
		a[i] = x - y;	
	 } 
	 sort(a, a + n);
	 reverse(a, a + n);
	 int ans = 0;
	 int i = 0;
	 while(sum > m)
	 {
    
    
	 	ans++;
	 	sum -= a[i++];
	 	if(i > n)
	 	{
    
    
	 		cout << -1 <<endl;
	 		return 0;
		 }
	 } 
	 cout <<ans << endl;
    return 0;
}

おすすめ

転載: blog.csdn.net/qq_45432665/article/details/108054997