#include<algorithm> #include<cctype> #include<cstdio> using namespace std; const int maxn = 20005; int N[maxn], M[maxn]; int buffer[10]; int n, m; void scan_d(int &x) { char ch = getchar(); while(!isdigit(ch)) ch = getchar(); x = 0; do { x = x * 10 + ch - '0'; ch = getchar(); }while(isdigit(ch)); } void print_d(int x) { if(x == 0) putchar('0'); else { int p = 0; while(x) { buffer[p++] = x % 10 + '0'; x /= 10; } for(int i = p-1; i >= 0; i--) putchar(buffer[i]); } putchar('\n'); } int main() { while(scanf("%d%d", &n, &m) == 2 && n && m) { for(int i = 0; i < n; i++) scan_d(N[i]); for(int i = 0; i < m; i++) scan_d(M[i]); sort(N, N+n);sort(M, M+m); int cur = 0; //变量什么时候需要用就什么时候定义 int cost = 0; for(int i = 0; i < m; i++) //一共有m个骑士 能力是从小到打排列的 if(M[i] >= N[cur]) { // 如果骑士的能力大于或者等于这个头数 cost += M[i]; //那么久算上这个花费 if(++cur == n) break; } if(cur < n) printf("Loowater is doomed!\n"); // cur < n 就说明 骑士已经用完了 else print_d(cost); } return 0; }
时间: 2024-10-28 21:46:00