Университет ИТМО Сакт-петербурга (olymp.ifmo.ru) ежегодно проводит перечневую олимпиаду по информатике первого уровня. Задачи олимпиады напоминают задания ЕГЭ. Мы предлагаем Вам попробовать решить на пробном туре вариацию одной задачи с олимпиады СПБГУ ИТМО 2015 года. Пете подарили n гирь и чашечные весы. Каждая гиря весит ai грамм. Первым делом он разложил гири на чаши. При этом одна из чаш может быть пустой. Теперь он хочет выяснить, какой наименьшей разницы весов на чашах можно достичь, не более чем за одно перекладывание гирь. Одно перекладывание происходит следующим образом: Петя выбирает некоторую гирю, лежащую на одной чаше весов и перекладывает ее на другую чашу весов. Обратите внимание, что Петя не обязан сделать это перекладывание.
Формат ввода
В первой строке входного файла weight.in находится одно натуральное число n (1 ≤ n ≤ 50) — количество гирь. В каждой из следующих n строк находятся два натуральных числа ai, bi (1 ≤ ai ≤ 1000, 1 ≤ bi ≤ 2) — масса гири и номер чаши весов, на которой она находится.
Формат вывода
В выходной файл weight.out требуется вывести одно число — наименьшую разницу весов, которую можно достичь, сделав не более одного перекладывания гирь.
1011010
Объяснение:
Алгоритм перевода в двоичную систему:
1)
Переводим модуль числа в двоичную систему
Выполнить деление исходного числа на 2. Если результат деления больше или равен 2, продолжать делить его на 2 до тех пор, пока результат деления не станет равен 1
2). Выписать результат последнего деления и все остатки от деления в обратном порядке в одну строку.
3) выполняем инверсию всех битов
4) к результату добавляем 1
Получается:
1) делим -89 на 2 = 44, остаток 1 - пишем -1, т. к. остаток 1
2) 44/2=22, без остатка, пишем 0
3) 22/2=11, без остатка, пишем 0
4) 11/2=5, остаток 1, пишем 1
5) 5/2=2, остаток 1, пишем 1
6) 2/2=1, без остатка, пишем 0
7) 1/2=0, остаток 1, пишем 1
Записываем в обратном порядке полученные 7 цифр 1011001
3) 0100110
4) 0100110
+ 1
получаем 1011010
3. CREATE TABLE
нужны имя полей и тип их данных, например уникальный ID это id = PRIMARY KEY
текст = text , не пустой текст = TEXT NOT NULL ,
числа = REAL,INT время = DATE и т.д
6. SELECT, FROM, GROUP BY, WHERE, ORDER BY, HAVING
7. SELECT - указывает , что извлекать из таблицы, так же может содержать агрегирующие функции и функции времени такие как EXTRACT, DATE_TRUNC
8. FROM - указывает из какой таблицы извлекать, так же можно указать подзапрос
9. WHERE - указывает какие условия нужны для извлечения , которые указаны в SELECT, не может сравнивать агрегирующие функции , для этого есть HAVING, также может содержать подзапрос
10. GROUP BY - групирует по .., HAVING - то же самое , что WHERE , только для агрегирующих функций
11. ORDER BY - использует методы ASC(по возрастанию значений) пример - имя_поле ASC, или DESC(по убыванию значений) - имя_поля DESC
Объяснение:
Будут вопросы напиши в коменты(