猿辅导编程第一题什么思路

我的思路是,用优先队列,取出来顶上前三个a,b,c那么如果c==0直接返回res,否则res =c。
int main()
{
    int n;
    cin >> n;
    while (n--) {
        int t;
        cin >> t;
        priority_queue<int> p;
        while(t--) {
            int m;
            cin >> m;
            p.push(m);
        }
        int a,b,c;
        int res = 0;
        while(p.size()>=3) {
            a = p.top();
            p.pop();
            b = p.top();
            p.pop();
            c = p.top();
            p.pop();
            if (c == 0)
                break;
            else {
                a = a - c;
                b = b - c;
                p.push(a);
                p.push(b);
                res = c;
            }
        }
        cout << res << endl;
    }
    return 0;
}#猿辅导##笔试题目#
全部评论
我知道哪里错了,不应该一次性减去c应该一个一个减。比如测试用例2.3.3.99应该是2.2.2.98
点赞 回复 分享
发布于 2019-08-24 18:01
是不是测试时一次性输入的,所以没有全过就是0通过率
点赞 回复 分享
发布于 2019-08-24 17:56
我跟你写的代码除了变量名几乎一样,改来改去一直是 0 哈哈哈
点赞 回复 分享
发布于 2019-08-24 17:49
取出来之后应该把a,b减c,再放进去,一直到c为0停止。然而还是ac 0
点赞 回复 分享
发布于 2019-08-24 17:47
同样的方法,一个都过不了
点赞 回复 分享
发布于 2019-08-24 17:44
你这个过多少
点赞 回复 分享
发布于 2019-08-24 17:42

相关推荐

湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务