TYVJ 1090 母舰 解题报告
就是贪心,但是这个题目很猥琐,需要考虑打不过对方的情况,代码如下:
#include <stdio.h> #include <stdlib.h> int a[100000], b[100000]; int com(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main(int argc, char **argv) { int i, j, ans = 0; int m, n; scanf("%d%d", &n, &m); for(i = 0; i < n; i++){ scanf("%d", &a[i]); } for(j = 0; j < m; j++){ scanf("%d", &b[j]); ans += b[j]; } qsort(a, n, sizeof(int), com); qsort(b, m, sizeof(int), com); i = j = 0; while(i < n && j < m){ if(a[i] < b[j]){ ans -= b[j]; i++; } j++; } //猥琐的题目, 还要考虑打不过的情况 if(j == m && i != n){ printf("0\n"); return 0; } printf("%d\n", ans); return 0; }