本题对时间非常敏感,一开始思路是使用map,后来注意到直接输入然后排序,输出中位数即可,使用vector时发生TLE,改成普通数组ac。
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int arr[1000010];
int main()
{
int N;
while (cin >> N)
{
int x, n = N;
//memset(arr,0,sizeof arr);
while (N--)
{
cin >> x;
arr[N] = x;
}
sort(arr, arr + n);
cout << arr[(n + 1) / 2] << endl;
}
return 0;
}