TEMA

PROBLEM 2153 - URI Fórum 1.0

URI Online Judge preguntado 4 years ago

URI Online Judge Fórum 1.0

MOD

Este tema fue resuelto y no puede recibir nuevas respuestas.

  • João Henrique Damazio respondido 4 years ago

    testa com esse caso

    [list:2ftczpnv]marioamario[/list:u:2ftczpnv]

  • Unknown respondido 4 years ago

    Porque quem coloca casos no uDebug somos nós, usuários.

    Alguns problemas nem necessitam de exemplos de entradas, bastando a ferramenta de geração de saídas para entradas que você mesmo crie.

    Sempre que eu percebo que alguém tem uma dificuldade, eu procuro criar entradas no uDebug para evidenciar os casos de erros mais comuns.

    PS: o uDebug para este problema está com um bug - já reportado.

  • João Henrique Damazio respondido 4 years ago

    Por que demoram tanto para colocar o uDebug? isso facilitaria bastante...

  • Tobias Sette respondido 4 years ago

    Uma coisa que percebi sobre este problema é que, apesar do enunciado e dos exemplos, o objetivo não é corrigir uma fala errada, é remover uma substring que esteja no final de outra substring. Depois que percebi isso a solução foi muito mais simples e pude eliminar o "Wrong answer (20%)".

    Nota: como não encontrei uma espaço para informar problemas, estou deixando aqui a sugestão de corrigir os usos de "o mesmo", vide http://www.scrittaonline.com.br/e-corre ... r-o-mesmo/

  • Tobias Sette respondido 4 years ago

    Por que este exemplo deveria ser tratado pelo código? Haja visto que no enunciado está:

  • Samuel Silvino respondido 4 years ago

    Minha solução deu certo para todos os casos teste, mas recebi 20% WA. Em todos os teste que efetuei ele trabalhou, alguém pode me ajudar? Obrigado.

    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    /*
        Como o enunciado garante que a palavra se repete, basta que a palavra acabe na penultima ocorrencia
        da ultima palavra, nao?
    */
    
    int main()
    {
        char palavra[50];
        int i;
    
        while (scanf(" %s", palavra) != EOF)
        {
            char ultimaLetra = palavra[strlen(palavra)-1];
    
            for (i = strlen(palavra)-2; i>=0; i--) // Encontra a penultima ocorrencia da ultima letra
            {
                if (ultimaLetra == palavra[i])
                {
                    palavra[i+1] = '\0';
                    break;
                }
            }
            printf("%s\n", palavra);
        }
    }
  • João Henrique Damazio respondido 4 years ago

    não consegui entender muito bem :\ ..

  • Leonardo Igor respondido 4 years ago

    Teste seu código com

    algumacoisataerradaerrada

    deve sair

    algumacoisataerrada

    mas no seu código sai

    algumacoisataerradaerra

    Nesse problema da pra resolver com força bruta e obter tempo 0.000s ou usar automaton suffix/suffix array/etc. Eu fiz da 1 maneira. Uma dica,você só precisa listar todas as substrings e achar a maior substring repetida e checar a proximidade das mesmas,no caso, ambas no fim.

  • João Henrique Damazio respondido 4 years ago

    RESOLVIDO!!!!

    tá dando 20% WA, por que ?

  • Samuel Silvino respondido 4 years ago

    .