入門OJ P:1327乳牛の洗濯物干し問題解

1381 ワード

原題URL:https://begin.lydsy.com/JudgeOnline/problem.php?cid=1311&pid=10パスワード:20192019の3回目のブログは、依然として緊張しており、不足点は指摘を歓迎します.
タイトルは以下の通りです:Time Limit:1 Sec Memory Limit:128 MB Description熊おばさんの英明な指導の下で、時計回りと彼の仲間は多くの牛の赤ちゃんを産んだ.熊おばさんは赤ちゃん一人一人にかわいいベビー服を着ることにした.そこで、牛の赤ちゃんのために洗濯して洗濯するのはとても不快なことになりました.聖人王はこの重任を担った.洗濯が終わったら、服を乾かしてください.服は自然条件下で1時間でA点湿度を乾かすことができます.けちけちした熊おばさんは洗濯機を1台買った.ベーキングマシンを使うと、1枚の服を自然乾燥のA点湿度のほかに、B点湿度を乾燥させることができますが、1時間以内に1枚の服にしか使用できません.N枚の服はいろいろな原因で濡れていません.今、服ごとに湿度を教えてあげます.すべての服を乾かす最小時間(湿度0は乾き)を求めてください.Inputの最初の行N,A,B,次のN行は、行ごとに1つの数で、服の湿度(1<=湿度、A,B<=500000,1<=N<=500000)を表す.Output 1行、最小時間.Sample Input 3 2 1 1 2 3 Sample Output 1
実はちょうどこの问题を见て内心は完全に愚かで、しかし后で考えて、大体考えてみると湿度の最大の衣服をベーキング机で乾燥して、湿度の最大の衣服が乾燥することができる时答えで、湿度の最大の衣服を探して、绝えず更新するため、私は大きい根の山で顺番をつけて、更に1回for循环して、答えは出てきました.具体的なコードは以下の通りです.
#include 
#include 
using namespace std;

priority_queuep;

int n,a,b,sum,ans;
int v[500001];

int main()
{
	scanf("%d%d%d",&n,&a,&b);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		p.push(v[i]);
	}    
	for(int i=1;i<=n;i++)
	{
		sum=p.top()-b; //  
		p.pop(); //  
		p.push(sum); // 	
		if(p.top()<=i*a) //  
		{
			ans=i;
			break; // 
		}
	}
	printf("%d",ans);   
	return 0;
}

本こんにゃくは、何か間違いや改善すべき点があれば、ご指摘を歓迎します.ありがとう!!!