anastasiagold
04.04.2021 14:44

N, k= [int(i) for i in input().split()] b = 1
list = [1]

while len(list) < k:
if b != n:
list.extend(list)
list.insert(len(list) // 2, b+1)
b = b + 1

k = k - 1
print(list[k])
как можно максимально сократить текст
ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
Хлоя, как и Владик, — спортивный программист. У нее не было проблем с тем, чтобы добраться до олимпиады, но на самой олимпиаде ей понадобилась ваша ! У нее не получается решить следующую задачу.

Рассмотрим следующий алгоритм генерации последовательностей целых чисел. Первоначально имеется последовательность из одного элемента, равного 1. Далее производится (n - 1) шаг. На каждом шаге берется последовательность, полученная на предыдущем шаге, приписывается сама к себе в конец, а в середину вставляется символ с минимальным положительным, не использованным ранее, числом. Например, после первого шага получится последовательность [1, 2, 1], а после второго — [1, 2, 1, 3, 1, 2, 1].

Необходимо вывести значение элемента, стоящего на k-й позиции (элементы пронумерованы с 1) в итоговой последовательности, т. е. после (n - 1) шага Хлое решить задачу!

Входные данные
В единственной строке содержатся два целых числа n и k (1 ≤ n ≤ 50, 1 ≤ k ≤ 2n - 1).

Выходные данные
Выведите одно целое число — число, стоящее в итоговой последовательности на позиции k.

Примеры
входные данныеСкопировать
3 2
выходные данныеСкопировать
2
входные данныеСкопировать
4 8
выходные данныеСкопировать
4
Примечание
В первом примере итоговая последовательность — [1, 2, 1, 3, 1, 2, 1]. Число, стоящее на второй позиции, равно 2.

Во втором примере итоговая последовательность — [1, 2, 1, 3, 1, 2, 1, 4, 1, 2, 1, 3, 1, 2, 1]. Число на восьмой позиции — 4.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
1, 2)
Сначала надо разделить IP на байты, по 8 бит:
1 )11001100.11100010.10100110.01101001
2) 11011001.10100001.01100011.00111010

Теперь переводим каждый байт в десятичную сс, получаем:

1) 204.226.166.105
2) 217.161.99.58

3, 4) 
Переведем каждый байт в двоичную сс:

3) 10111100.1011.11000010.100000
4) 11110000.1111.0.10

Добавим незначащие нули, чтобы кол-во бит в каждом байте было равно восьми:

3) 10111100.00001011.11000010.00100000
4) 11110000.00001111.00000000.00000010

Уберем точки:

3) 10111100000010111100001000100000
4) 11110000000011110000000000000010
0,0(0 оценок)
Ответ:
ромашка261
25.01.2022 20:32
#include <iostream>
#include <cstring>

using namespace std;

int main() {
    int n,m;
    cin >> n >> m;
    int a[n][m], sn[n], sm[m]; //sn - сумма строк, sm  - сумма столбцов
    memset(sn, 0, n*sizeof(int));
    memset(sm, 0, m*sizeof(int));
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; sn[i]+= a[i][j], sm[j]+= a[i][j], j++)
            cin >> a[i][j];
    cout << endl;
    for(int i = 0; i < n; i++) cout << sn[i] << ' ';
    cout << endl << endl;
    for(int i = 0; i < m; i++) cout << sm[i] << ' ';
    cout << endl << endl;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++)
            cout << a[i][j] << ' ';
        cout << endl;
    }   
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота