Ir para conteúdo

POWERED BY:

Felipp

Members
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que Felipp postou

  1. Felipp

    [Dúvida] Ordenação de Vetores

    Boa noite pessoal, Tenho umas listas de ordenação em C++ para fazer, e em alguns exercícios eu fiquei com uma dúvida imensa. O problema é o seguinte: Tenho que ordenar o vetor em ordem decrescente (até ai tudo bem), mas após isso tenho que imprimir o índice do vetor original. Ou seja, tenho que ordenar e, após isso, imprimir a posição que esse número ocupava ANTES de ser ordenado, e não o valor da posição. EXEMPLO: v[5] = {1, 3, 4, 6, 2} Vetor ordenado = {6, 4, 3, 2, 1} Porém, a saída esperada é: {3, 2, 1, 4, 0}, que são os índices do vetor original. Pesquisando pela internet, vi algumas resoluções que usavam struct, mas não posso usar nada do tipo. Apenas vetores e algoritmos de ordenação. Alguém pode me dar uma luz? Grato!
  2. Felipp

    [Dúvida] Ordenação de Vetores

    Obrigado! Mas ainda tô me batendo na parte da busca :( Entro sempre em loop infinito quando busco os elementos do vetor ordenado no vetor original. Esse problema é o Olimpiadas, do SPOJ (http://br.spoj.com/problems/OLIMPJ09/) #include<iostream> using namespace std; int main(){ int n, m, o, p, b, maior, aux, medalha[100], pos[100], a; cin >> n >> m; for (int i=0; i <100; i++){ medalha[i] = 0; pos[i] = 0; } for (int i = 0; i < m; i++){ cin >> o >> p >> b; medalha[o]++; medalha[p]++; medalha[b]++; pos[o]++; pos[p]++; pos[b]++; } for (int i = 0; i < n; i++){ maior = i; for (int j=i; j<n; j++){ if (medalha[j] > medalha[maior]) maior = j; } aux = medalha[i]; medalha[i] = medalha[maior]; medalha[maior] = aux; } for (int i = 0; i <n; i++) cout << medalha[i] << " "; cout << endl; for (int i = 0; i <n; i++){ a = medalha[i]; for (int j =0; j < n; j++){ if (pos[j] = a){ cout << j << " "; j = 0; } } } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.