题目:给定一个分数序列,如1 2 3 4 5 6 7 8 9 9,根据这个序列,对这些分数进行排名,输出排名后的序列:10 9 8 7 6 5 4 3 1 1
所给的序列不一定都是有序的,也有可能是:27 26 30 31 40 1 20,排名序列如下:7 6 5 4 3 2 1
要求有T个Case ,T<=300000;分数S <= 32000
代码如下:
#include<iostream>
#include<memory.h>
//#define DEBUG
using namespace std;
const int M1 = 32004;
const int M2 = 300004;
int People[M2] = { 0, };
int Scores[M1] = { 0, };
int main()
{
int tc, T;
int N;
#ifdef DEBUG
freopen("Input.txt","r",stdin);
setbuf(stdout,NULL);
#endif
cin >> T;
for (tc = 1; tc <= T; tc++)
{
cin >> N;
int max = 0;
memset(People,0,sizeof(int)*M2);
memset(Scores,0,sizeof(int)*M1);
for (int i = 1; i <= N; i++)
{
cin >> People[i];
if (max < People[i]) max = People[i];