TOPIC

WA (100%) mas passa no uDebug

Fabiano Salles asked 2 years ago

Estou recebendo WA, mas todos os testes que fiz o uDebug passam sem problemas. Não entendi onde está o problema.

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

#define BUFFER_LEN 240

inline bool fit(char A[], char B[]){
    size_t maxA = strnlen( &A[0], BUFFER_LEN ) -1;
    size_t maxB = strnlen( &B[0], BUFFER_LEN ) -1;  
    if (maxA < maxB) return false;
    for (int i = 0; i < maxB; i++) {
         if (B[maxB - i] != A[maxA - i])
              return false;
    }
    return true;
}

int main(void){
    int N;
    scanf("%d", &N);
    char A[BUFFER_LEN], B[BUFFER_LEN];
    for(int i=0; i<N; i++){     
        scanf("%s %s", &A, &B);
        if (fit(A, B))
            printf("encaixa\n");
        else
            printf("nao encaixa\n");
    }
    return 0;
}

Remember not post solutions. Your post may be reviewed by our moderators.

  • Lucas Schneider replied 2 years ago

    só tirar os '\n'.

  • Diogo Alves replied 2 years ago

    Boa, não sei de onde vem esse strnlen, acho que não faz parte do padrão ansi c, aqui no code blocks não execultou

  • feodorv replied 1 year ago

    strnlen is standard C function. The problem with the code lays into the following line:

        for (int i = 0; i < maxB; i++) {

    It should be

        for (int i = 0; i <= maxB; i++) {

    The actual input case:

    1
    11 2

    The code prints

    encaixa