(SPOJ) 813 - Saldo de gols - Solução

import java.io.*;
import java.util.*;
import java.text.DecimalFormat;  
import java.lang.Math;  

class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        Main processando = new Main();
        processando.processa();
       
        System.exit(0);
    }
   
    void processa() throws NumberFormatException, IOException {
        String line = "";
       
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int contador = 0;
        while ((line = br.readLine()) != null) {
            StringTokenizer tokenizer = new StringTokenizer(line);
            int partidas = Integer.parseInt(tokenizer.nextToken());
           
            if (partidas == 0) {
                return;
            }
           
            contador++;

            int favor;
            int contra;
            int[] saldo = new int[partidas];
           
            for (int i = 0; i < partidas; i++) {
                line = br.readLine();
               
                tokenizer = new StringTokenizer(line);
               
                favor = Integer.parseInt(tokenizer.nextToken());
                contra = Integer.parseInt(tokenizer.nextToken());
               
                saldo[i] = favor - contra;               
            }
           
            int somaMaior = 0;
            int soma = 0;
            int inicioLista = 0;
            int primeiro = 0;
            int ultimo = 0;
            for (int i = 0; i < partidas; i++) {
                 soma += saldo[i];
                 if (soma >= 0) {
                    if (soma > somaMaior || (soma == somaMaior && ultimo-primeiro < i-inicioLista)) {
                     somaMaior = soma;
                     primeiro = inicioLista+1;
                     ultimo = i+1;
                     }
                 }
                 else {
                    soma = 0;
                    inicioLista = i+1;
                 }
            }
           
            if (somaMaior > 0) {
                System.out.println("Teste " + contador + "\n" + primeiro + " " + ultimo + "\n");
            }
            else {
                System.out.println("Teste " + contador + "\n" + "nenhum" + "\n");
            }       
        }
                                   
        return;
    }
}

Comments

Popular posts from this blog

(Coderbyte) Powers of Two - Solução

(Coderbyte) Dash Insert II - Solução

(CoderByte) Number Search - Solução