UVA - 11292 Dragon of Loowater
1261 ワード
vjudgeのテーマはPDFで、コピーしにくいので、ここにリンクします
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19048
感慨vjudgeは本当に良いもので、もし劉汝佳の本の上のテーマがどのようにブラシするか分からないならば、テーマの英語は少し多くて、大意は1匹の怪物のnの頭で、mの騎士は頭を切って、すべての頭はiに値して、能力はkの騎士は毎回値がkの頭より小さいことを切ることができて、しかし同時に値がkの給料を支払って、あなたに最もお金を節約する方法は何ですかを聞いて、すべての頭を切り落とせないならprintf(「Loowater is doomed!」);
私たちはこのように考えることができて、最後にすべての頭が切られる以上、すべての頭は自分を切ることができる最悪の騎士を選ぶべきで、もし最後に騎士がいないことに気づいたら、怪物が死なないことを説明します.
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19048
感慨vjudgeは本当に良いもので、もし劉汝佳の本の上のテーマがどのようにブラシするか分からないならば、テーマの英語は少し多くて、大意は1匹の怪物のnの頭で、mの騎士は頭を切って、すべての頭はiに値して、能力はkの騎士は毎回値がkの頭より小さいことを切ることができて、しかし同時に値がkの給料を支払って、あなたに最もお金を節約する方法は何ですかを聞いて、すべての頭を切り落とせないならprintf(「Loowater is doomed!」);
私たちはこのように考えることができて、最後にすべての頭が切られる以上、すべての頭は自分を切ることができる最悪の騎士を選ぶべきで、もし最後に騎士がいないことに気づいたら、怪物が死なないことを説明します.
# include <cstdio>
# include <algorithm>
using namespace std;
const int size = 20005;
int main()
{
int head[size],knight[size];
int n,m,i,j,cnt;
while (~scanf("%d%d",&n,&m)&&n)
{
for (i=0;i<n;i++)
scanf("%d",head+i);
for (j=0;j<m;j++)
scanf("%d",knight+j);
sort(head,head+n);
sort(knight,knight+m);
cnt = i = j = 0;
while (i<n&&j<m)
{
if (head[i]<=knight[j])
cnt += knight[j],i++,j++;
else
j++;
}
if (i>=n)
printf("%d
",cnt);
else
printf("Loowater is doomed!
");
}
return 0;
}