Tentei resolver sem êxito esse problema proposto na 2ª Maratona de Programação de Açores.
link:
http://www.uac.pt/~hguerra/Maratona/ProblemasMaratona2005.pdf
Problema 1
O objectivo deste problema é calcular o número de vezes que um número inteiro ocorre numa lista de seis números inteiros que variam entre 0 e 4095.
Valores de Entrada
A entrada consiste numa linha com o número, cujo número de ocorrências pretendemos calcular, seguindo-se uma segunda linha com uma lista de seis números entre 0 e 4095 separados por um espaço em branco.
Valores de Saída
Deve sair o número de vezes que o inteiro ocorre na lista.
Exemplo
Valores de Entrada
32
1 32 10 0 32 5
Valores de Saída
2
Espero que compreendam minha tentativa de solução e se possível me indiquem onde estou errando e como poderia ser otimizado meu algoritmo.
import java.io.*;
public class Maratona1 {
public static void main(String[] args) throws IOException {
int vezes = 0;
String[] valores = {"", "", "", "", "", ""};
BufferedReader bf1 = new BufferedReader(new InputStreamReader(System.in));
String line1 = bf1.readLine();
int valor = Integer.parseInt(line1);
BufferedReader bf2 = new BufferedReader(new InputStreamReader(System.in));
String line2 = bf2.readLine();
for(int i = 0; i < line2.length(); i++) {
if(String.valueOf(line2.charAt(i)).equals(" "))
break;
else
while(! String.valueOf(line2.charAt(i)).equals(" "))
valores[i] = valores[i] + line2.charAt(i);
if(Integer.parseInt(valores[i]) == valor)
vezes++;
}
System.out.println(vezes);
}
}