SPOJ Prędkość średnia - JAVA błąd wykonania (NZEC)

SPOJ Prędkość średnia - JAVA błąd wykonania (NZEC)
H8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Panowie przepraszam za pytania w tak banalnym zadaniu ale mimo iż kod działa sędzia wywala mi błąd wykonania NZEC. Poza tym, że już wałkuję temat do znudzenia to chętnie się dowiem na czym w ogóle polega tego typu błąd jeśli ktoś się orientuje :)
Link do zadania: https://pl.spoj.com/problems/VSR/
Bardzo byłbym wdzięczny jeśli ktoś wskaże mi co jest nie tak z tym kodem

Kopiuj
import java.io.*;
import java.util.*;
import java.lang.*;

public class Main {

public static void main (String[] args) throws IOException
	{
		Scanner skaner = new Scanner(System.in);
		int t = skaner.nextInt();
		int v1, v2, vsr;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		for(int i=0; i<t; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			v1 = Integer.parseInt(st.nextToken());
			v2 = Integer.parseInt(st.nextToken());
			vsr = 2*v1*v2 / (v1+v2);
			System.out.println(vsr);
		}
		br.close();
		skaner.close();
	}
}
szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

Nie bardzo działa to twoje wczytywanie. Odpal sobie to w jakimś kompilatorze online, gdzie podajesz stdin od razu a nie wpisujesz tak jak zapewne to robiłeś ty w konsoli.

Potat0x
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 372
0

Zamiast tworzyć nowy BufferedReader możesz skorzystać ze skaner do wczytywania linii.

Kopiuj
StringTokenizer st = new StringTokenizer(skaner.nextLine(), " ");

i jeszcze po wczytaniu t trzeba wyjąć z wejścia znak nowej linii, który tam został po użyciu nextInt();

Kopiuj
int t = skaner.nextInt();
skaner.nextLine();
H8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Faktycznie coś nie przyjmuje stdin..
Jeśli chodzi o Scanner to odpada, bo jest za wolny. Wyrzuca przekroczenie czasu a jest na to raptem 0.1s ;)

H8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Ogarnąłem ale przyznam szczerze, że nie bardzo czaję dlaczego teraz działa.
Usunąłem Scanner i liczbę testów wczytuję za pomocą BufforReader'a którego również używam do wczytania danych. I sędzia na spoju przyjął kod i na ideone działa i na konsoli hula.

Na czym polega problem użycia skanera i buffora jednocześnie? Próbowałem zamykać scanner przed zainicjonowaniem buffora itd i ciągle jest ten sam błąd.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.