Codeforces Round #312 (Div. 2) B. Amr and The Large Array

题目链接:

题意:给你一组数字。选择一个尽量短的区间,,使其包含 数组中出现次数最多的元素的全部元素,求区间起始位置

代码:

;int n;int l[1000010];//记录元素的起始位置int r[1000010];main(){int n;while (scanf(“%d”, &n) != EOF){memset(l, 0, sizeof(l));memset(r, 0, sizeof(r));memset(cnt, 0, sizeof(cnt));int res = 0;for (int i = 1;i <= n;i++){scanf(“%d”,&p[i]);cnt[p[i]] ++;if (l[p[i]] == 0)l[p[i]] = i;r[p[i]] = i;}int MAX = 0;for (int i = 1;i <= n;i++)MAX = max(MAX, cnt[p[i]]);int t1, t2;int tmp = 1e6 + 10;for (int i = 1;i <= n;i++){if (cnt[p[i]] == MAX)if (r[p[i]] – l[p[i]] < tmp){tmp = r[p[i]] – l[p[i]];t1 = l[p[i]];t2 = r[p[i]];}}printf(“%d %d\n”, t1, t2);}return 0;}

每个人在他的人生发轫之初,总有一段时光,

Codeforces Round #312 (Div. 2) B. Amr and The Large Array

相关文章:

你感兴趣的文章:

标签云: