TEMA

PROBLEM 1608 - URI Fórum 1.0

beecrowd preguntado 9 years ago

URI Online Judge Fórum 1.0

MOD

Este tema fue resuelto y no puede recibir nuevas respuestas.

  • ltgoncalves respondido 9 years ago

    Deu certo, valeu! E entendi, o valor de cada ingrediente é 1000, mas o total preço do bolo não necessáriamente, o erro foi meu mesmo, desculpe-me :p

  • rtashiro0 respondido 9 years ago

    Resolvido!

    Alguém poderia me indicar mais casos testes que o meu code falha?

  • pgabriel respondido 9 years ago

    WA 90% ? '-' Aliás , o toolkit não está funcionando ! Quais casos falham meu programa ?

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main() {
        int casos, D, I, B, j, k, QI, PosIng, Qtd, Valor, Total = 0, cont = 0,max = 0;
        cin >> casos;
        while ( casos > 0 )
        {
            int vI[100] = {0};
            cin >> D >> I >> B ;
            for ( j=0 ; j<I ; j++ )
            {
                cin >> vI[j] ;
            }
            for ( j=0 ; j<B ; j ++ )
            {
                cin >> QI ;
                for ( k=0 ; k<QI; k++ )
                {
                    cin >> PosIng >> Qtd ;
                    Valor = vI[PosIng] * Qtd ;
                    Total = Total + Valor ;
                }
                cont = floor (D/Total) ;
                if ( cont > max )
                {
                    max = cont ;
                }
                Total = 0 ;
            }
            cout << cont << endl ;
            cont = 0 ;
            max = 0 ;
            casos -- ;
        }
        return 0 ;
    }
  • gilharco respondido 9 years ago

    veja que sua variavel "preco" é a soma de vários números que vão de 0 a 1000, ainda multiplicados pelo fator "qtd"

  • ltgoncalves respondido 9 years ago

    Vou tentar, mas na descrição do problema tem uma parte em que diz:

  • gilharco respondido 9 years ago

    Quando você inicializa a variável "menor", você está colocando um valor muito baixo (pode ser que ele nunca entre ultimo if, o que gera lixo como resultado). Pra corrigir isso, basta colocar um valor maior quando se inicializa a variável.

  • ltgoncalves respondido 9 years ago

    Olá! Eu estou recebendo Wrong Answer(100%) mas não consegui achar o erro no meu código, e os casos de teste exemplares estão todos corretos, segue o código:

    Código Removido
  • mbarroso respondido 9 years ago

    Era isso mesmo, obrigado.

  • gilharco respondido 9 years ago

    Matheus, existem dois problemas com seu código. O primeiro deles é que voce está printando a variável errada no final, deveria ser aux e não aux1. O segundo é que você não está atualizando a variável aux em cada caso de teste. Consertando isso, seu codigo deve passar sem problemas.

  • mbarroso respondido 9 years ago

    Alguém pode dar uma ajuda, os casos de testes estão corretos, porém esta recebendo wrong answer.

    Dúvida respondida. Código removido.
  • ndsousa0 respondido 9 years ago

    Ae cara, voltei aqui só pra te agradecer pela ajuda, por responder minhas dúvidas. Enfim consegui resolver a questão.
    Grande abraço!

    Ah sim.. Aqui vai um trecho do meu código em c++ como exemplo:

    scanf("%d %d %d", &D, &I, &B);
    for(int i = 0; i<l; i++){
        scanf("%d", &preco[i]);
    }
    
    for(int i = 0; i<B; i++) {
        scanf("%d", &q);
        for(int j = 0; j<q; j++) {
            scanf("%d %d", &qual, &qtde);
            //  .................
        }
    }

    Se vc estiver fazendo em java, não é muito diferente, é só ler com scanner.nextInt()

    http://www.tutorialspoint.com/java/util ... extint.htm[/quote]
  • ndsousa0 respondido 9 years ago

    Valeu irmão! Agora só falta solucionar o problema. Engraçado que quando você é iniciante, se enrola com cada bobagem. Mas é assim mesmo, vivendo e aprendendo!

  • wbrito respondido 9 years ago

    Ah sim.. Aqui vai um trecho do meu código em c++ como exemplo:

    scanf("%d %d %d", &D, &I, &B);
    for(int i = 0; i<l; i++){
        scanf("%d", &preco[i]);
    }
    
    for(int i = 0; i<B; i++) {
        scanf("%d", &q);
        for(int j = 0; j<q; j++) {
            scanf("%d %d", &qual, &qtde);
            //  .................
        }
    }

    Se vc estiver fazendo em java, não é muito diferente, é só ler com scanner.nextInt()

    http://www.tutorialspoint.com/java/util ... extint.htm
  • ndsousa0 respondido 9 years ago

    Minha dúvida é exatamente essa ai. Eu não sei como vou fazer para primeiro ler um número 'Qi' e na mesma linha que li o 'Qi' ler os 'Qi' pares. Meu grande problema esse. Tem como exemplificar com um trecho de código.

  • wbrito respondido 9 years ago

    Não entendi muito bem sua duvida. Mas é o seguinte:

    Vc vai ter B bolos, para cada um desses bolos, há uma linha que se inicia com um numero Qi, que é a quantidade de ingredientes esse bolo vai utilizar. Em seguida, há Qi pares de inteiros, ou seja, depois da leitura de Qi, há 2*Qi números. Para cada um desses pares, o primeiro indica qual ingrediente é utilizado, e o segundo numero indica a quantidade de vezes que esse ingrediente é usado.

    Exemplo: se tivermos Qi = 3, a linha seria descrita nesse formato: 3 (item_x, qtde_x) (item_y, qtde_y) (item_z, qtde_z)

    Resumindo, vc usou 3 ingredientes para descrever esse bolo, e para cada um desses 3 ingredientes, vc informa qual foi o ingrediente usado, e qual foi a quantidade usada desse ingrediente.

  • ndsousa0 respondido 9 years ago

    Eu não consegui entender como irei usar o Qi. Sei que é a quantidade de índices diferentes. Também não sei como irei colocar Qi pares de números, todos na mesma linha. Se poder me dar uma dica, fico agradecido.