用一个结构体来保存数值,再用快排从小到大排序,输出排序后序列的第S-N项以及具有那个项数值的个数即可~
by TomLovesRita @ 2018-04-09 21:06:41
呸,不用结构体
by TomLovesRita @ 2018-04-09 21:07:56
还有,从小到大排,输出第N项。。。
by TomLovesRita @ 2018-04-09 21:09:23
@[巫神搞比利](/space/show?uid=80746)
by TomLovesRita @ 2018-04-09 21:09:30
他重复的不是也算吗?
假如是 1 1 2 2 3
求第三个是2吧
by 巫神搞比利 @ 2018-04-09 21:11:20
# 代码
```
#include <iostream>
#include <cstdio>
#include <algorithm>
#define maxn 110000
using namespace std;
int a[maxn], n, s, ans=0;
bool cmp(int x, int y) {
return x<y;
}
int main(void) {
cin >> n >> s;
for(int i = 1; i <= s; i++) cin >> a[i];
sort(a+1, a+s+1, cmp);
for(int i = 1; i <= s; i++)
if(a[i]==a[n]) ans++;
cout << a[n] << ' ' << ans << endl;
return 0;
}
```
by TomLovesRita @ 2018-04-09 21:12:34
可以处理 @[巫神搞比利](/space/show?uid=80746)
by TomLovesRita @ 2018-04-09 21:12:56
谢谢大佬
by 巫神搞比利 @ 2018-04-09 21:29:00
原来是~~暴搜~~
by 巫神搞比利 @ 2018-04-09 21:32:25
~~话说第二个问可以拿一个数组记录吧~~
```cpp
for(int i=1;i<=s;i++)
{
scanf("%d",&mem[i]);
ton[mem[i]]++;
}
```
by Ezios @ 2018-04-09 22:25:32