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!