Dwie drukarki łączny czas drukowania

Odpowiedz Nowy wątek
2015-02-14 11:08
Mały Web
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!

Pozostało 580 znaków

2015-02-14 11:47
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.

Pozostało 580 znaków

2015-02-14 13:27
0

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


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Jak by ponumerować po kolei to numer 9, 10, 11 i 14 jest nie zgodny z tym co powinno być. - DibbyDum 2015-02-14 13:31

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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