Solução por Anita Ramos
Esse problema pede que você ordene um vetor com extensão de até 3000000 posições. A programação em si não é nada complexa, apenas exige que você conheça uma forma de ordenar esse vetor. Para isso, utilizaremos a função sort(), que pode ser empregada da seguinte forma:
- Se eu quero ordenar um vetor v[10], com 10 posições:
- sort(nome do vetor, nome do vetor + seu tamanho)
- sort(v, v+10);
- sort(nome do vetor, nome do vetor + seu tamanho)
Assim, iniciando a programação então, depois de declarar a biblioteca e o vetor , lemos o número de casos de teste () e já construímos um loop para processar todos os casos de teste. Dentro dele lemos o e usamos outro loop para ler as alturas. Em seguida chegamos a função que nesse caso utiliza os seguintes parâmetros: e . Por fim, basta imprimir o valor de cada posição do vetor com um loop de 0 a , dando espaçamento para todos menos para o primeiro termo (configuração de saída), e retornar a 0.
Segue o código comentado para melhor compreensão da solução
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> //biblioteca utilizada | |
using namespace std; | |
const int MAXN=3000010; //declaro um int constante 'MAXN' como 3000010 | |
int v[MAXN]; //declaro um vetor de tamanho 'MAXN' | |
int main() | |
{ | |
int NC,N; //declaro as variáveis 'NC' e 'N' | |
scanf("%d", &NC); //leitura do número de casos de teste | |
while(NC>0) //enquanto tiver casos de teste | |
{ | |
scanf("%d", &N); //leitura do N | |
for(int i=0; i<N; i++)scanf("%d", &v[i]); //leio as alturas a partir de um loop, armazenando todas no vetor | |
sort(v,v+N); //uso a função sort() para ordenar meu vetor | |
for(int i=0; i<N; i++) //loop para imprimir a resposta | |
{ | |
if(i==0)printf("%d", v[i]); //se for o primeiro termo de uma sequência, imprimo o valor da primeira posição SEM espaçamento antes | |
else printf(" %d", v[i]); ; //senão, imprimo o valor da posição determinada COM espaçamento antes | |
} | |
printf("\n"); //imprimo uma linha em branco | |
NC--; //subtraio 1 do número de casos de teste | |
} | |
return 0; //retorna a 0 | |
} |