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

我的思路是,用优先队列,取出来顶上前三个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

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务