TEMA

Erro em 15%

Carlos Amaral preguntado 2 years ago

Meu código dá as respostas corretas no code blocks, tentei até outras possibilidades para ver se o resultado dava correto, e deu. Mas no URI dá erro. Alguém identifica?

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(){
    char crib[10001], cifra[10001];
    int i, j, k, tamCrib, tamCifra, percorre;
    int conta = 0, proximoI;

    scanf("%s", &cifra);
    scanf("%s", &crib);

    tamCrib = strlen(crib);
    tamCifra = strlen(cifra);
    percorre = tamCifra - tamCrib +1;

    for (i = 0; i < percorre; i++){ //passada do crib na cifra
        proximoI = -1;
        for (j = i; j < percorre; j++){ //posiçao inicial do crib na cifra
            for (k = 0; k < tamCrib; k++){ //posição relativa do crib e cifra
                if (cifra[j+k] == crib[k]) {
                    proximoI=0;
                    break;
                }
            }
            if (proximoI==0) break;
            if (proximoI == -1) conta++;
        }
    }
    printf("%d\n", conta);
    return 0;
}

Recuerda no enviar soluciones. Tu mensaje puede ser revisado por nuestros moderadores.

  • Ygor Santana respondido 2 years ago

    Conseguiu resolver? se não, da um toque que eu ajudo (congui arrumar sua solução para dar accepted)

  • feodorv respondido 2 years ago

    For what is this cycle?

           for (j = i; j < percorre; j++){ //posiçao inicial do crib na cifra

    You already have "i" as the offset from the beginning of "cifra", and "k" as the index inside "crib". Third cycle is redundant.