TOPIC

PROBLEM 1436 - URI Fórum 1.0

beecrowd asked on Aug 2 2013

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • gadmelo replied 8 years ago

    Quando eu usei fflush(stdin) a resposta deu 90% errada, acho que acabou apagando todo o buffer com as entradas. Não precisa do seu primeiro for porque 3<=N<=9.

  • FelipeAlves replied 9 years ago

    Obtive 70% WA neste exercício!

    Testei as mais variadas opções no toolkit e não encontrei nenhum problema ainda! a minha lógica foi encontrar a qtde de jogadores através da substituição ASCII to int (por gambiarra) preencher um vetor com todos os jogadores usar o capitão como a metade do vetor, ou em casos pares, o jogador logo a direita.

    Através do toolkit, dá para perceber que a ordem não vai alterar a resposta.

    Posso ter confundido algo ou não ficou claro para mim!

    Obrigado pela ajuda!

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void){
    
        int n, i, j, k, capitao, qtde, vetor[10], cont;
        char linha[50];
    
        scanf("%d", &n);
        for(i=0;i<n;i++){
            fflush(stdin);
            gets(linha);
            for(j=0;linha[j]!=' ';j++){
                if(j==1){
                    qtde = qtde * 10 + (int)linha[j]-48;
                }else{
                    qtde = (int)linha[j]-48;
                }
            }
            cont = 0;
            for(k=j+1;cont<qtde;k+=3){
                vetor[cont] = ((int)linha[k]-48)*10 + ((int)linha[k+1]-48);
                cont++;
            }
            capitao = vetor[qtde/2];
    
            printf("Case %d: %d\n", i+1, capitao);
        }
    
        return 0;
    }
  • Roberto0 replied 9 years ago

    Não entendi muito seu código, mas dê uma analisada novamente no enunciado do problema para que encontre uma solução mais simples. Existe uma solução bem direta...

    Abraço.

  • Roberto0 replied 9 years ago

    Roger, verifique sua variável 'i'. Talvez não esteja reinicializando o valor dela corretamente.

    Espero ter ajudado.

  • zbrendo replied 9 years ago

    Porque dá Runtime Error?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int cont,n,cont2,cont3,i,maior,menor,proc,cs;
        int jog[10];
    
        scanf("%d",&cont);
    cont3=0;
        cs=4;
        maior=0;menor=0;
        cont2=1;
        while(cont2<=cont)
        {
            scanf("%d",&n);
    
                for(i=0;i<n;i++){
                    scanf("%d",&jog[i]);}
    
    proc=jog[cont3];
            while(cs!=0){
    
            for(i=0;i<n;i++)
            {
                if(jog[i]<proc)
                    menor++;
                if(jog[i]>proc)
                    maior++;
            }
            if(maior==menor)
                cs=0;
            else
            {
                cont3++;
                proc=jog[cont3];
                maior=0;menor=0;
            }
    
            }
    
                if(cs==0){
                    printf("Case %d: %d\n",cont2,proc);
                    cs=3;
                        }
            cont2++;
    
        }
    
        return 0;
    }
  • rbenet replied 9 years ago

    Código Aceito. Obrigado robertoej!

  • alourencette replied 9 years ago

    Acho que tem um probleminha no enunciado neste problema:

    "Cada equipe é constituída por um número ímpar de jogadores" << fala que tem que ser impar

    "O número de jogadores deve ser maior do que 1, mas não pode ser superior a 10" << fala que 10 pode ser e e par

    "N (1 < N < 11)" << tambem fala que pode ser 10