排序也能过去,好像用C++提交题目比G++要快上许多,300毫秒吧,
一会就会去百度问一下的,这个还是比较有用的呀。
贴出两个代码,是水题。但是学hash呢,没办法:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int a[1000011];
bool cmp(const int a, const int b)
{
return a > b;
}
int main()
{
int n, m;
while (scanf("%d%d", &n, &m) != EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
sort(a, a + n, cmp);
for (int i = 0; i < m; i++)
{
printf(i == m - 1 ? "%d\n" : "%d ", a[i]);
}
}
// system("pause");
return 0;
}
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 1000011;
int hash[MAXN];
int a[MAXN];
int main()
{
int n, m;
int b;
while (scanf("%d%d", &n, &m) != EOF)
{
memset(hash, 0, sizeof(hash));
for (int i = 0; i < n; i++)
{
scanf("%d", &b);
hash[b + 500000] = 1;
}
int cnt = 0;
for (int i = 1000000; i >= 500000; i--)
{
if (hash[i])
{
a[cnt++] = i - 500000;
}
if (cnt == m)
{
break;
}
}
for (int i = 0; i < m; i++)
{
printf(i == m - 1 ? "%d\n" : "%d ", a[i]);
}
}
// system("pause");
return 0;
}