Проблем с решението на задача "Колби" на JavaScript

Здравейте,

Срещнах затруднение с решението на задача Колби. Прилагам моето решение:

'use strict';
let n = +gets();
let liters = +gets(); 
//let n = 10;
//let liters = 11;
let empty = 0;

for (let j = 0, i = 1; i <= n; j++, i++) {
    empty += j;
    if (empty >= liters && i % 2 != 0) {
        print(i);
        //console.log(i);
        break;
    }
}

Интересното в случая, е че ми връща WA още на първия тест, който локално работи без проблем. Тествал съм го в различни варианти и кода работи коректно, докато не стигне Judge. Прилагам и screenshot от VSC:

kolbiVSC

Всякакъв съвет е добре дошъл.

1 Like

Променливата empty трябва да е сума от обема на предходната колба и предходния номер.

empty = ( j + empty)

Съгласен съм, затова съм използвал empty += j, което на практика е съкратен вариант на empty = j + empty :slight_smile:

Поздрави!

Когато в примера входните данни са на един ред, най-вероятно и Judge ти ги подава на един ред, тоест “10 5”

Благодаря ти, знаех си, че е нещо дребно, което изпускам, но въобще не се сетих да погледна входа :laughing:

Edit: Е вече забих, защото отново получих WA…

'use strict';
let array = +gets().split(' ').map(Number);
let n = array[0];
let liters = array[1]; 
//let n = 10;
//let liters = 5;
let empty = 0;

for (let j = 0, i = 1; i <= n; j++, i++) {
    empty += j;
    if (empty >= liters && i % 2 != 0) {
        print(i);
        //console.log(i);
        break;
    }
}

Препоръчвам за задичите в Judge да забравиш за закоментирвания и откоментирвания на console.log-ове/входни стойности и да си тестваш локално директно и само с gets() и print, като добавиш кода от Testing locally над твоето решение, както си е описано.

В случая ще трябва да промениш const test на [
‘10 5’
];

И вече лесно можеш да видиш какво принтираш (в твоя случай - нищо) - или какво взимаш всъщност в променливата array с един print под нея, например.

4 Likes

Права си, в опита си да стане по-бързо и кратко го усложних доста. В този случай и локално не работи, а най-странното е че същия метод за създаване на array съм използвал и в други задачи. Ще прегледам, дали не съм изял нещо дребно, защото на пръв поглед не си виждам грешката. Кода работи, но не мога да “хвана” input-а…

Edit: Видях си грешката, всичко идва от това, че използвам +gets(), вместо gets(). Дори в началото мислех, че точно там е разковничето и промених кода, но отново не мина. Върнах назад и се оказа, че съм имал друга грешка и затова пренебрегнах, че не съм съобразил input-а.

Благодаря за насоките :slight_smile:

Здрасти
Би ли ми казал каква грешка си откри защото и при мен е същото. Локално ми минават всички тестове но като я кача в системата и гърми още на първият тест.