(SPOJ) 813 - Saldo de gols - Solução 2
Apenas a implementação utilizando o leitor de inteiros, e não o StringTokenizer.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
static int leitor(BufferedReader br) throws NumberFormatException, IOException {
int n;
int resp = 0;
while (true) {
n = br.read();
if (n >= '0' && n <= '9') break;
}
while (true) {
resp = resp*10 + n-'0';
n = br.read();
if (n < '0' || n > '9') break;
}
return resp;
}
void processa() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int partidas = leitor(br);
int contador = 0;
while (partidas != 0) {
contador++;
int favor;
int contra;
int somaMaior = 0;
int soma = 0;
int inicioLista = 0;
int primeiro = 0;
int ultimo = 0;
for (int i = 0; i < partidas; i++) {
favor = leitor(br);
contra = leitor(br);
soma += (favor - contra);
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) {
bw.write("Teste " + contador + "\n" + primeiro + " " + ultimo + "\n\n");
}
else {
bw.write("Teste " + contador + "\n" + "nenhum" + "\n\n");
}
partidas = leitor(br);
}
bw.flush();
bw.close();
return;
}
}
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
static int leitor(BufferedReader br) throws NumberFormatException, IOException {
int n;
int resp = 0;
while (true) {
n = br.read();
if (n >= '0' && n <= '9') break;
}
while (true) {
resp = resp*10 + n-'0';
n = br.read();
if (n < '0' || n > '9') break;
}
return resp;
}
void processa() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int partidas = leitor(br);
int contador = 0;
while (partidas != 0) {
contador++;
int favor;
int contra;
int somaMaior = 0;
int soma = 0;
int inicioLista = 0;
int primeiro = 0;
int ultimo = 0;
for (int i = 0; i < partidas; i++) {
favor = leitor(br);
contra = leitor(br);
soma += (favor - contra);
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) {
bw.write("Teste " + contador + "\n" + primeiro + " " + ultimo + "\n\n");
}
else {
bw.write("Teste " + contador + "\n" + "nenhum" + "\n\n");
}
partidas = leitor(br);
}
bw.flush();
bw.close();
return;
}
}
Comments
Post a Comment