单纯的贪心
将龙头的直径。勇士的能力值分别排序后。在贪心。
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 20005;
int A[maxn], B[maxn];
int main ( ) {
int m, n;
while ( scanf ( "%d%d", &n, &m ) == 2 && n && m ) {
for ( int i = 0; i < n; scanf ( "%d", &A[i] ), ++i ) ;
for ( int i = 0; i < m; scanf ( "%d", &B[i] ), ++i ) ;
sort ( A, A + n );
sort ( B, B + m );
int cur = 0;
int cost = 0;
for ( int i = 0; i < m; ++i )
if ( B[i] >= A[cur] ) {
cost += B[i];
if ( ++cur == n ) break;
}
if ( cur < n ) printf ( "Loowater is doomed!\n" );
else printf ( "%d\n", cost );
}
return 0;
}