腾讯模拟笔试

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n;
    std::ios::sync_with_stdio(false);
    map<long long, int> temp;
    while (cin >> n)
    {
        int n2 = n;
        while (n--)
        {
            long long a;
            cin >> a;
            if (temp[a] == 0)
            {
                temp[a]=1;
            }
            else temp[a] = 0;
        }
        long long sum = 0;
        bool flag;
        if (n2 & 1)
        {
            flag = 1;
            for (auto i : temp)
            {
                if (i.second == 1)
                {
                    if (flag)
                        sum += i.first;
                    else
                        sum -= i.first;
                    flag = !flag;
                }
            }
        }
        else
        {
            flag = 1;
            for (auto i : temp)
            {
                if (i.second == 1)
                {
                    if (flag)
                        sum -= i.first;
                    else
                        sum += i.first;
                    flag = !flag;
                }
            }
        }
        cout << sum << endl;
    }
    return 0;
}


#腾讯#
全部评论
如果只是sort排序的话,会超时。。。
点赞 回复 分享
发布于 2018-08-31 22:55
我做的跟你不一样
点赞 回复 分享
发布于 2018-08-31 21:29
楼主做对了吗
点赞 回复 分享
发布于 2018-08-31 21:33
你这题有原题啊 我刚看过就是腾讯2018春招的编程题 一模一样  可惜我的不是这题 
点赞 回复 分享
发布于 2018-08-31 21:34
排序后,奇数项的和减去偶数项的和,这样做可以AC吗
点赞 回复 分享
发布于 2018-08-31 21:36
这个先进行排序,然后分牌总数奇偶性分类,再进行牛牛和羊羊求和,最后做差就是答案
点赞 回复 分享
发布于 2018-08-31 21:56
原题可以直接排序不会超时
点赞 回复 分享
发布于 2018-09-01 18:04

相关推荐

11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
西南山:哥,你的技能是在报菜单吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务