zoj 2387

来源:互联网 发布:淘宝会员分几个等级 编辑:程序博客网 时间:2024/06/07 15:18

额  一个贪心  好难想到 ......

#include <cstring>#include <cstdio>#include <algorithm>#include <vector>using namespace std;int a[1010];int b[1010];int flag1,flag2,flag3,flag4;int main(){    int n;    while(scanf("%d",&n) && n)    {        for(int i = 0 ; i < n; i++)        {            scanf("%d",&a[i]);        }        for(int i = 0 ; i < n; i++)        {            scanf("%d",&b[i]);        }        sort(a, a+n);        sort(b, b+n);        int sum = 0;        flag1 = flag2 = 0;        flag3 = flag4 = n-1;        while(flag1 <= flag3)        {            if(a[flag1] > b[flag4])            {                sum += (flag3-flag1+1)*200;                break;            }            else if(a[flag3] > b[flag4])            {                --flag3;                --flag4;                sum += 200;            }            else if(a[flag3] < b[flag4])            {                ++flag1;                --flag4;                sum -= 200;            }            else if(a[flag3] == b[flag4])            {                if(a[flag1] > b[flag2])                {                    ++flag1;                    ++flag2;                    sum += 200;                }                else if(a[flag1] < b[flag2])                {                    ++flag1;                    --flag4;                    sum -= 200;                }                else if(a[flag1] == b[flag2])                {                    if(a[flag1] == b[flag4]) break;                    else if(a[flag1] < b[flag4])                    {                        ++flag1;                        --flag4;                        sum -= 200;                    }                }            }        }        printf("%d\n",sum);    }    return 0;}


原创粉丝点击