TÓPICO

Erro Wrong answer (5%)

Raiane Castro perguntou 5 months ago

Bia tarde, alguém pode me ajudar com essa questão? Não entendo porque do erro, a saída sai conforme o enunciado.

using System;

class URI {

static void Main(string[] args) { 

    int A, B, C, D;
    bool flag = true;
    string msg = "Valores aceitos";

    string[] vet = Console.ReadLine().Split(' ');
    A = int.Parse(vet[0]);
    B = int.Parse(vet[1]);
    C = int.Parse(vet[2]);
    D = int.Parse(vet[3]);

    if(!(B > C) && !(D > A))
    {
        flag = false;

    }else if(!((C + D) > (A + B)) && !((C + D) >= 0))

    {
        flag = false;
    }else if( (A % 2) != 0 )
    {
        flag = false;
    }

    if(!flag)
    {
        msg = "Valores nao aceitos";
    }

    Console.WriteLine(msg);

}

}

Este tópico foi resolvido e não pode receber novas respostas.

  • Raiane Castro respondido 5 months ago

    Muito obrigado Matheus Castro. Me ajudou bastante, mudei algumas coisas , fui no udebug, fiz os teste e deu certo. Obrigado!

  • Matheus Castro respondido 5 months ago

    Oi Raiane

    Se quiser um caso para testar (que não está correto segundo o seu algoritmo): 10 19 35 20

    1. O pensamento que tem que ter no seu algoritmo: SE qualquer uma das negações for verdade, então "eu" tenho que entrar na condição e setar a flag como false.

    2. Se qualquer negações que seja resultar em TRUE, então quer dizer que existe um problema em uma das condições.

    3. No caso de entrada [10, 19, 35, 20]:

    4. !(B > C) && !(D > A) == FALSE

    5. !(19 > 35) && !(20 > 10)

    6. !(false) && !(true)

    7. true && false

    8. false

    ou seja, não entra na primeira condição

    Na minha opinião, é mais fácil trabalhar com "afirmação" e talvez isso ajude a resolver a questão.

    Vc vai ter que verificar as outras condições tb.

    Existe um botão aqui no URI para o site udebug do lado do botão do fórum. Ele geralmente fornece casos de testes mais "extremos".

    Espero ter ajudado