Skip to content

Instantly share code, notes, and snippets.

@Semigradsky
Last active February 11, 2018 17:42
Show Gist options
  • Save Semigradsky/2d088e26705b3e58398e5abfbf450adb to your computer and use it in GitHub Desktop.
Save Semigradsky/2d088e26705b3e58398e5abfbf450adb to your computer and use it in GitHub Desktop.
RS Conf 2018 - minification challenge

Задание первого дня

На вход поступают в случайном порядке часть чисел от 1 до N, разделенные пробелами. Нужно вывести недостающие числа через пробел по возрастанию.

Пример ввода:

3 1 5

Ожидаемый вывод:

2 4

Возможное решение под спойлером

s=readline()
for(i=r='';i++<Math.max(...s);r+=s.match(i)?'':(r&&' ')+i);writeline(r)

84 символа

Примечание: в тестах были однозначные числа, поэтому получилось использование match и достаточно было Math.max(...s), чтобы найти максимальное число. Если бы были нормальные тесты, то это бы не сработало. Возможно, что в условии были цифры от 1 до N, а не числа, тогда всё встаёт на свои места, я не помню.

Задание второго дня

На вход поступает число N. Далее на вход поступают N строк с числами, разделенными пробелами. Нужно вывести N строк с суммами этих чисел и в последней строке - общую сумму.

Пример ввода:

2 1 3 5 3

Ожидаемый вывод:

4 8 12

Возможное решение под спойлером

r=readline
w=writeline
r()
for(a=0;t=r();w(s))a+=s=eval(t.replace(/ /,'+'))
w(a)

80 символов

Примечание: в тестах было только по два числа в строке, поэтому получилось сэкономить один символ, не делать глобальную замену (.replace(/ /g,'+'))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment