1

Тема: Алготестер задача №1503. Вітрян та будильник

http://algotester.com/uk/ArchiveProblem … File/40679

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Battery_power battery_power = new Battery_power(in.nextInt(), in.nextInt());
        battery_power.possibility();
    }
}

class Battery_power {
    private static int  alarm;
    private static int sum_min_power = 0 , sum_max_power = 0;
    public Battery_power(int n, int alarm) {
        this.alarm = alarm;
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < n; i++){
            sum_min_power += in.nextInt();
            sum_max_power += in.nextInt();
        }
    }

    public static void possibility(){
        if ( sum_max_power < alarm) {System.out.println("Impossible"); return;}
        if ( sum_min_power >= alarm) {System.out.println("Certainly"); return;}
        System.out.println("Possibly");
    }

}

Не розумію у чому проблема. Дякую за допомогу!

2

Re: Алготестер задача №1503. Вітрян та будильник

Припущення №1. У вас не відкривається сайт. Спробуйте перевірити з'єднання з інтернетом.

Подякували: zxzpogoncuk1

3

Re: Алготестер задача №1503. Вітрян та будильник

З інтернетом все добре

4

Re: Алготестер задача №1503. Вітрян та будильник

Припущення №2. Вас забанили на тому сайті, і ви не можете завантажувати свої розв'язки.

Прихований текст

У мене ще багато припущень є, але мені дуже швидко набридає гратися в партизана. Ви можете нормально пояснити, в чому проблема?

Подякували: zxzpogoncuk1

5

Re: Алготестер задача №1503. Вітрян та будильник

На першому прикладі програма вибиває. Ну після другого припущення я вже зрозумів, що погано сформулював питання.

6

Re: Алготестер задача №1503. Вітрян та будильник

Прихований текст
zxzpogoncuk написав:

Не розумію у чому проблема.

То проблеми нема ?

zxzpogoncuk написав:

Дякую за допомогу!

Подякували: koala, zxzpogoncuk, ostap34PHP3

7

Re: Алготестер задача №1503. Вітрян та будильник

А на своєму комп'ютері ви не пробували її запускати? Чи там усе нормально?

8

Re: Алготестер задача №1503. Вітрян та будильник

Контрольний приклад проходить

9

Re: Алготестер задача №1503. Вітрян та будильник

Дивно, як на мене. Утім, я не спец по Java.
В будь-якому разі - якось об'єднайте сканери, наприклад, створюйте сканер в конструкторі чи передавайте його туди параметром.
І повикидайте static-и, нащо вони вам статичні? У вас на всі будильники один акумулятор?

Подякували: zxzpogoncuk1

10

Re: Алготестер задача №1503. Вітрян та будильник

Забрав static-и і передав сканер в конструктор. І програма пішла на максимум. Чому так?

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Battery_power battery_power = new Battery_power(in.nextInt(), in.nextInt(), in);
        battery_power.possibility();
    }
}

class Battery_power {
    private int  alarm;
    private int sum_min_power = 0 , sum_max_power = 0;
    public Battery_power(int n, int alarm, Scanner in) {
        this.alarm = alarm;
        for (int i = 0; i < n; i++){
            sum_min_power += in.nextInt();
            sum_max_power += in.nextInt();
        }
    }

    public void possibility(){
        if ( sum_max_power < alarm) {System.out.println("Impossible"); return;}
        if ( sum_min_power >= alarm) {System.out.println("Certainly"); return;}
        System.out.println("Possibly");
    }

}

11

Re: Алготестер задача №1503. Вітрян та будильник

Якщо коротко - бо System.in - статичний.
Трохи розлогіше: ви не можете читати з одного потоку у два сканери, це щонайменше нелогічно. А раптом байт, потрібний одному з них, уже прочитаний іншим? Якби це був файл, то ви б отримали повідомлення, що не можете відкрити цей файл, бо він уже відкритий в іншому місці. А так - програма намертво прикручена до System.in і вилізають незрозумілі повідомлення, коли ви хочете його розірвати на два сканери.
Ви б ще від System.out відв'язалися, хай possibility() повертає String, а виводить його main, тоді взагалі краса буде.
До речі, якщо ви вже передаєте в Battery_power сканер, то можете не передавати перші два параметри, а прямо читати їх всередині.

Подякували: zxzpogoncuk1

12

Re: Алготестер задача №1503. Вітрян та будильник

І будь ласка, кому не ліньки, тицьніть на кнопу дякую. Хотілось би, щоб репутація була двоцифровим числом.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Battery_power battery_power = new Battery_power(in);
        System.out.println(battery_power.possibility());
    }
}

class Battery_power {
    private int  alarm;
    private int sum_min_power = 0 , sum_max_power = 0;
    public Battery_power(Scanner in) {
        int n = in.nextInt();
        alarm = in.nextInt();
        for (int i = 0; i < n; i++){
            sum_min_power += in.nextInt();
            sum_max_power += in.nextInt();
        }
    }

    public String possibility(){
        if ( sum_max_power < alarm) return "Impossible";
        if ( sum_min_power >= alarm) return "Certainly";
        return "Possibly";
    }

}
Подякували: koala, leofun012