Dwie drukarki łączny czas drukowania

0

Cześć,
Próbuję rozwiązać zadanie: http://www.codeabbey.com/index/task_view/two-printers
Napisałem coś takiego:

import java.util.Scanner;

public class App {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int times = scanner.nextInt();
		int firstTime, secondTime, pages;
		while (times != 0) {
			firstTime = scanner.nextInt();
			secondTime = scanner.nextInt();
			pages = scanner.nextInt();
			count(firstTime, secondTime, pages);
			--times;
		}
		scanner.close();
	}
	
	public static void count(long firstTime, long secondTime, long pages) {
		long greater = (firstTime >= secondTime) ? firstTime : secondTime;
		long smaller = (firstTime < secondTime) ? firstTime : secondTime;
		long deltaGreater = greater, deltaSmaller = smaller;
		boolean printed = false;
		while (pages != 0) {
			--pages;
			smaller += deltaSmaller;
			if (pages == 0) {
				break;
			}
			if (smaller >= greater) {
				if (pages == 0) {
					printed = true;
					break;
				}
				--pages;
				greater += deltaGreater;
			}
		}
		System.out.println("");
		if (printed) {
			System.out.println((greater - deltaGreater) + " ");
		}
		System.out.println((smaller - deltaSmaller) + " ");
	}
}

Dla takiego zestawu 16
30 29 29265579
1472 133 237143
4 6 88928420
109 130 5126167
13043 4043 70767
719 12328 74391
188142 251879 625
740728 315221 644
1 2 346152329
1651 1011 378030
871944 999556 968
15692 24781 40107
40001714 90583166 7
1645196 1696079 335
1 1 668729038
2326780 1207123 205


otrzymuję <code>431543287 
28926436 
213428208 
303923828 
218410946 
50539948 
67354836 
142479892 
230768219 
237037038 
450795048 
385348444 
200008570 
279683320 
334364519 
162961605 

a powinienem 431543287
28926436
213428208
303923828
218410946
50539948
67354836
142479892
230768220
237037372
450799756
385348444
200008570
279853035
334364519
162961605


Nie mam pojęcia gdzie mogłem się machnąć... Z góry dzięki za pomoc!
0

Jakbyś usiadł trochę przy kartce to byś wiedział, że wystarczy rozwiązać równanie:

x = \lceil\frac{bc}{a + b}\rceil

Gdzie c to ilość kartek, a a i b to czasy druku na drukarkach przy czym ax \geq by a x + y = c.

0

Gdzie jest różnica między tym co wyszło, a tym co powinno wyjść?

1 użytkowników online, w tym zalogowanych: 0, gości: 1