TOPIC

Wrong answer 20%?

vhugo86 asked 6 years ago

#include <stdio.h>
int main()
{
    int a,b,c,total;
        scanf("%i %i %i",&a,&b,&c);
        if((2*b+4*c)<(2*a+2*c) && (2*b+4*c)<(4*a+2*b)){
                total=(2*b)+(4*c);
        }
        else if ((2*a+2*c)<(4*a+2*b) && (2*a+2*c)<(4*c+2*b)){
            total=(2*a)+(2*c);
        }
        else if((2*b+4*a)<(2*a+2*c) && (2*b+4*a)<(4*c+2*b)){
            total=(4*a)+(2*b);
        }
        else if(a==c && b==a){
            total=(2*a)+(2*c);
        }
        printf("%i\n",total);
    return 17;
}

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

  • acgpaes replied 5 years ago

    Esse problema é o seguinte: Existem 3 andares, intuitivamente o melhor lugar para se colocar a máquina seria aonde estiver mais pessoas porque ai existirão menos pessoas subindo e descendo escadas. Entretanto, nem sempre isso vai ser verdade, pois se você após aplicar a lógica que eu disse acima para as entradas 201 para (andar3), 200 para (andar2) e 200 para (andar1) verá que se gastará menos minutos no total colocando a máquina no andar2 do que no andar3(mesmo no andar3 tendo mais pessoas, porque o tempo de minutos do andar1 que tem 200 pessoas cairá pela metade colocando a máquina no andar2). Logo, a grande sacada é perceber isso e adicionar no código, um desvio no andar1 e andar3 comparando com os minutos que se levaria no andar2. Bem, o código agora você faz e ahhh no andar2 lembre que SEMPRE terá menos minutos se tiver um número maior ou IGUAL de pessoas do que os outros andares.

  • famamun replied 6 years ago

    you don't need to check whether 3 number is equal. just make the last condition a else condition.

  • lfelipe67 replied 6 years ago

    não entendi seu codigo muito bem, mas tenta fazer uma logica diferente, se vc calcular quanto tempo gasta em cada andar depois é so pegar o menor valor. Espero que te ajude.