Codeforces 388C - Fox and Card Game

388C - Fox and Card Game

思路:贪心博弈。

  如果是偶数个一人一半;如果是奇数个,中间那个数单独取,其他一人一半。单独取的数排一下序再取。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=105;
vector<int>a;
int main()
{
    int n;
    int ans=0,sum=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int k,x;
        cin>>k;
        for(int j=0;j<k;j++)
        {
            cin>>x;
            sum+=x;
            if(k&1)
            {
                if(j==k/2)a.push_back(x);
            }
            if(j<k/2)ans+=x;
        }
    }
    sort(a.begin(),a.end(),[](int a,int b){return a>b;});
    for(int i=0;i<a.size();i+=2)ans+=a[i];
    cout<<ans<<' '<<sum-ans<<endl;
    return 0;
} 

 

posted @ 2017-07-24 14:23  Wisdom+.+  阅读(234)  评论(0编辑  收藏  举报