题解 | #合并表记录#

合并表记录

http://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201


int main(void) {
    int num;
    int array[500] = {0};
    int hash[500] = {0};

    scanf("%d", &num);

    int a, b;

    for (int i = 0; i < num; ++i) {
        scanf("%d %d", &a, &b);
        hash[i] = a;
        array[i] = b;
        //array[a] += b;
    }
    for (int j = 0; j < num; ++j) {
        int tmp1 = 0, tmp2 = 0;
        for (int k = j + 1; k < num; ++k) {
            if (hash[j] > hash[k]) {
                tmp1 = hash[k];
                hash[k] = hash[j];
                hash[j] = tmp1;

                tmp2 = array[k];
                array[k] = array[j];
                array[j] = tmp2;
            } else if (hash[j] == hash[k]) {
                hash[k] = 0;
                array[j] += array[k];
            }
        }
    }
    printf("%d %d\n", hash[0], array[0]);

    for (int j = 1 ; j < num; ++j) {
        if (hash[j] != 0)
            printf("%d %d\n", hash[j], array[j]);
    }

    return 0;
}

全部评论

相关推荐

头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务