Problema A da Maratona

1 resposta
N

E aí galera.

É o seguinte, fiz esse código para o problema A da maratona:

import java.io.*;
public class dice {
        static int proxjog=0;
        static int array[];
        static int winner=-1;
        static int jpode[];
        static int j[];
        static int p=0,s=0,n=0;
        
        
        public static void verifica(int soma)
        {
                if (jpode[proxjog]==0)
                {
                        joga(soma);
                }
                else 
                {
                        jpode[proxjog]=0;
                        passa(soma);
                        joga(soma);
                }
        }
        
        public static void joga(int soma)
        {
                if (j[proxjog]+soma>s-1)
                {
                 /*if (winner==-1)*/
                        winner=proxjog+1;
                }
                else
                {
                        j[proxjog]+=soma;
                        if (array[j[proxjog]]==-1)
                                jpode[proxjog]=1;
                }               
                passa(soma);
        }
        
        public static void passa(int soma)
        {
                if (proxjog==p-1)
                        proxjog=0;
                        else proxjog=proxjog+1;
        }

        public static void main(String[] args) throws IOException{
                String ent="",aux="";
                
                int soma=0;
                while (!ent.equals("0 0"))
                {
                        winner=-1;
                        proxjog=0;
                        BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
                        ent=br.readLine();
                        if (!ent.equals("0 0"))
                        {
                                p=Integer.parseInt(ent.substring(0,ent.indexOf(' ')));
                                s=Integer.parseInt(ent.substring(ent.indexOf(' ')+1,ent.length()));
                                array=new int[s];
                                jpode=new int[p];
                                j=new int[p];
                                for (int q=0;q<p;q++)
                                        j[q]=-1;
                                aux=br.readLine()+" ";
                                int auxi=0;
                                for (int z=0;z<aux.length();z++)
                                {
                                        if (aux.charAt(z)==' ')
                                        {
                                                array[Integer.parseInt(aux.substring(auxi,z))-1]=-1;
                                                auxi=z+1;
                                        }//if
                                }//for
                                aux=br.readLine();
                                n=Integer.parseInt(aux);
                                for (int z=0;z<n;z++)
                                {
                                        aux=br.readLine();
                                        soma=Integer.parseInt(aux.substring(0,aux.indexOf(' ')))+Integer.parseInt(aux.substring(aux.indexOf(' ')+1,aux.length()));
                                        verifica(soma);                                    
                                        
                                }//for
                                System.out.println(winner);
                                        
                        }//if
                        
                }//while
                
        }//main
}//class

Aí hoje eu fui ver o resultado da maratona e meu problema estava errado (nós submetemos esse código faltando 8 minutos para acabar a maratona). Eu achei um erro que eu coloquei em comentário no código acima, que eu tinha que colocar no método joga():

/if (winner==-1)/

Alguém sabe o que está errado neste código ??? É só colocar essa linha aí, para ele pode parar de mudar o winner ou tem mais algum erro???

1 Resposta

Guilherme_Silveira

me manda os codigos e td q vc tem por email - [email removido]
tento te ajuda hoje a noite

abraco

guilherme

Criado 12 de novembro de 2003
Ultima resposta 12 de nov. de 2003
Respostas 1
Participantes 2