0
点赞
收藏
分享

微信扫一扫

HDU - 1029 Ignatius and the Princess IV(暴力)

zmhc 2023-04-07 阅读 29


题目大意:给出奇数个数组,要求你找出出现次数大于等于一半的数字

解题思路:排序,暴力找

#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 1000010;

int n;
int num[N];

void init() {
    for (int i = 0; i < n; i++)
        scanf("%d", &num[i]);
    sort(num, num + n);
}

void solve() {
    int Max = (n + 1) / 2;
    int cnt = 1, tmp = num[0];
    for (int i = 1; i < n; i++) {
        if (num[i] == tmp) {
            cnt++;
        }
        else {
            if (cnt >= Max) {
                printf("%d\n", tmp);
                cnt = -1;
                break;
            }
            cnt = 1;
            tmp = num[i];
        }
    }
    if (cnt >= Max) {
        printf("%d\n", tmp);
    }
}

int main() {
    while (scanf("%d", &n) != EOF) { 
        init();
        solve();
    }
    return 0;
}


举报

相关推荐

0 条评论