domingo, 5 de agosto de 2012

#4 Exercício - Fliperama

Nome: Fliperama
Link: http://br.spoj.pl/problems/FLIPERAM/
Dificuldade: 4/10
Linguagem: C++
Tempo atingido: 0.08
Memória usada: 2.6M
Colocação alcançada: 100+
Tentativas: 6

Comentário:
Este exercício é simples, apenas mais um exercício de ordenação. Porém dependendo do método, pode-se estourar o tempo limite. Portanto recomendo que estudem alguns algoritmos de ordenação.
Eu fiz primeiramente com o método Bubble Sort (consegui um tempo de 0.24), e depois tentei com o Quick Sort (e fiz um tempo menor, de 0.08), e o Shell Sort eu não vi nenhuma vantagem em utilizá-lo neste problema.
Recomendo que os iniciantes estudem o Bubble Sort, pois é o mais simples. Os intermediários podem estudar o Quick Sort e o Shell Sort, que são um pouquinho mais chatos de aprender, porém tem um tempo de execução melhores.
Como eu só conhecia um algoritmo de ordenação até hoje, foi um pouco chatinho aprender os outros dois citados, portanto classifiquei este exercício como Médio.

Dicas:
- Estudem algoritmos de ordenação, como os citados acima.
- Caso o tempo ainda esteja estourando, pensem em uma maneira de fazer menos verificações, visto que no final só serão exibidos X resultados.

2 comentários:

  1. #include
    main()
    {
    int nentradas, msaidas, i, pontos[500], c, aux;
    scanf("%d %d", &nentradas, &msaidas);
    if((nentradas >=1 && nentradas <= 10000) && (msaidas >= 1 && msaidas <=500) && (msaidas <= nentradas))
    {
    for(i=0; i pontos[i])
    {
    aux = pontos[i];
    pontos[i] = pontos[c];
    pontos[c] = aux;
    }
    }
    }
    for(i = 0; i<msaidas; i++)
    {
    printf("%d\n", pontos[i]);
    }
    }
    return 0;
    }

    por que o meu erro de tempo?

    ResponderExcluir
  2. Eu não entendi de onde você está tirando essa variável C, ela não agrega nenhuma valor em momento algum. Esse primeiro loop também não entendo o motivo.
    O erro que seu código está retornando é referência inválida de memória, ou seja, há lixo na variável C e você está tentando acessá-la.
    Recomendo que estude os algoritmos citados no post.

    ResponderExcluir