Olá a todos!
Visitando o site [url]https://br.spoj.pl/[/url] e o lhando os problemas da categoria "OBI" notei que na questão "Temperatura Lunar" não havia nenhum respondido em Java (pelo menos não nas primeiras páginas), então, resolvi responder (mesmo não sendo muito experiente), o problema é o maldito erro NZEC que o juiz declara, não sei mais o que fazer, já tentei de todas as maneiras possiveis que me vinheram a cabeça, usando Array e ArrayList, usando Scanner e BufferedReader, mas o erro é sempre o mesmo, "erro em tempo de execução (NZEC)", imaginei que fosse o algoritmo tentando acessar algum lugar não alocado em array e tal, mas não achei a tal falha, também pensei que o algoritmo poderia estar lançando uma excessão, procurei, nada. Gostaria de saber se alguém pode me ajudar com isso.
Obrigado a todos
p.s.: o algoritmo funcionou perfeitamente pra todos os testes que executei.
Link do problema: [url]https://br.spoj.pl/problems/LUA/[/url]
segue o código:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TemperaturaLunar {
public static void main(String[] args) throws Exception {
BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in));
int contador = 1;
while(true) {
String[] dadosArray = leitor.readLine().split("\ ");
int numTemp = Integer.parseInt(dadosArray[0]);
int intervalos = Integer.parseInt(dadosArray[1]);
if((numTemp == 0) && (intervalos == 0)) {
break;
}
int[] temperaturas = new int[numTemp];
for(int i = 0; i < numTemp; i++) {
temperaturas[i] = Integer.parseInt(leitor.readLine());
}
int maior = -200;
int menor = 200;
int soma = 0;
int miniCont = 0;
int marc = intervalos;
while(true) {
for(int i = miniCont; i < marc; i++) {
soma+= temperaturas[i];
}
if(soma/intervalos > maior) {
maior = soma/intervalos;
}
if(soma/intervalos < menor) {
menor = soma/intervalos;
}
if(marc >= numTemp) {
break;
}
miniCont++;
marc++;
soma = 0;
}
System.out.println("Teste " + contador + "\n" + menor + " " + maior + "\n");
contador++;
}
}
}