spoj 247

来源:互联网 发布:拉格朗日插值算法程序 编辑:程序博客网 时间:2024/05/16 14:16

不管行列   总是先切割切割费用大的  代码比较烂 ......

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;bool cmp(int a, int b){    return a > b;}int a[1010],b[1010];int main(){    int T;    scanf("%d",&T);    while(T--)    {        int m,n;        scanf("%d%d",&m,&n);        for(int i = 0; i < m-1; i++)        {            scanf("%d",&a[i]);        }        for(int i = 0; i < n-1; i++)        {            scanf("%d",&b[i]);        }        sort(a, a+m-1, cmp);        sort(b, b+n-1, cmp);        int sum = 0;        int p,q;        p = q = 0;        while(p != m-1 || q != n-1)        {            if(p != m-1 && q != n-1 && a[p] >= b[q])            {                sum += a[p];                for(int j = q; j < n-1; j++)                {                    sum += b[j];                }                p++;            }            else if(p != m-1 && q != n-1 && a[p] < b[q])            {                sum += b[q];                for(int j = p; j < m-1; j++)                {                    sum += a[j];                }                q++;            }            else if(p == m-1)            {                for(int j = q; j < n-1; j++)                {                    sum += b[j];                }                q = n-1;            }            else            {                for(int j = p; j < m-1; j++)                {                    sum += a[j];                }                p = m-1;            }        }        printf("%d\n",sum);    }    return 0;}