Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/33: Рейтинг темы: голосов - 33, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 11.03.2023
Сообщений: 9

Будет ли заявление подписано или выброшено

25.05.2023, 10:45. Показов 6271. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На столе у большого начальника лежит стопка из N заявлений, пронумерованных сверху вниз от 1 до N.
Первое заявление он подписывает и убирает из стопки, второе – выбрасывает в мусорную корзину, третье – кладёт вниз стопки. Далее процесс продолжается аналогично, пока заявления в стопке не закончатся.
Определите, будет ли заявление с номером K подписано или выброшено, а также номер шага, на котором это произойдёт. Одним шагом является каждая из трёх операций, описанных выше.

Формат входных данных

Первая строка входных данных содержит целое число N, вторая строка – целое число K (1 ≤ N ≤ 109, 1 ≤ K ≤ N).

Формат выходных данных

В первой строке выведите «Yes», если заявление с номером K будет подписано, и «No», если оно будет выброшено.

Во второй строке выведите номер шага, на котором это произойдёт.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2023, 10:45
Ответы с готовыми решениями:

Как узнать внутри чего было выброшено исключение?
Как узнать внутри чего (свойства/конструктора/метода) было выброшено исключение?

Заявление об увольнении
Привет Вот например есть организация ООО Компик(название придумано мной), которая занимается IT-аутсорсингом. Она заключает договор с...

Не удалось загрузить расширение, потому что оно неверно подписано
Вот скрин.

16
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
25.05.2023, 23:06
Перебор "в лоб":
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def signornotsign(N, K):
   if N < 3 or N > 109:
      print('Меньше трёх бумажек!')
      return
   if K < 1 or K > N:
      print('И шо тады искать то?!')
      return
   a, c, b = list(range(1, N+1)), 0, False
   while len(a) >= 3:
      a = [a[x:x+3] for x in range(0, len(a), 3)]
      for x in a:
         if K in x:
            j, b = a[i := a.index(x)].index(K), True
            v = c+i*3+j+1
            if not j:
               print('Yes\n%d' % v)
            elif j == 1:
               print('No\n%d' % v)
            else:
               b = False
      c += len(a) * 3 - 3
      if b: break
      if len(a[-1]) < 3:
         t = a[-1]
         a = a[:len(a)-1]
         a = t + [x[2] for x in a]
      else:
         a = [x[2] for x in a]
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
25.05.2023, 23:10
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input('n = '))
k = int(input('k = '))
arr = list(range(n, 0, -1))
step = 1
while arr:
    for d in ('podp', 'v_musor', 'vniz'):
        num_cur = arr.pop()
        if d == 'vniz':
            arr.insert(0, num_cur)
        else:
            if num_cur == k:
                print('Yes' if d == 'podp' else 'No')
                print(step)
                exit()
        step += 1
        if not arr:
            break
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2023, 05:48
ну если "в лоб" решение, то примерно такое:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from collections import deque
 
n, k = map(int, input().split())
*s, = range(n)
q = deque(s)
while q:
    s[q.popleft()] = '*'
    if q:
        q.popleft()
    if q:
        q.append(q.popleft())
if s[k - 1] == '*':
    print('YES')
else:
    print('NO')
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
26.05.2023, 10:46
eaa, здесь надо еще указать на каком шаге подписано.
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
26.05.2023, 11:48
eaa, 50 гигов оперативки)

Добавлено через 2 минуты
idealist, можно вместо звездочки и номер шага записывать. Но проблема ведь не в этом)
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2023, 12:18
Red white socks, ну это понятно. задача то по другому решается
0
 Аватар для Senoki
6 / 6 / 0
Регистрация: 24.09.2021
Сообщений: 125
26.05.2023, 16:29
а если в лоб не заходит по времени?
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.05.2023, 18:11
Цитата Сообщение от Senoki
а если в лоб не заходит по времени?
Строго говоря, для решения задачи вообще не нужно использовать списки, ибо всё сводится к математической модели:
* в начальном состоянии из стопки бумаг в корзину будут отправлены заявления с номерами, кратные двум, а кратные трём перейдут к следующему "раунду"
* число три является ключевым по ряду параметров, в том числе расчёту шага, вычислению смещения кратных трём на следующем"раунде" и т.д.
* при "вращении" бумаг количество последних сокращается на треть
При таком подходе память отводится только под переменные, да и быстродействие значительно улучшается.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2023, 18:17
Цитата Сообщение от greg zakharov Посмотреть сообщение
да и быстродействие значительно улучшается.
значительно? это на сколько?

Добавлено через 42 секунды
тут имеют значения только остатки от деления на 3.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.05.2023, 19:13
Цитата Сообщение от eaa
значительно? это на сколько?
Реализуйте и посмотрите.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2023, 19:19
Цитата Сообщение от greg zakharov Посмотреть сообщение
Реализуйте и посмотрите.
реализовал и посмотрел. спасибо за совет
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.05.2023, 19:37
eaa, это не совет: вы задали вопрос, вам вполне ожидаемо ответили. Или вы чего-то другого ожидали?
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
26.05.2023, 19:48
Цитата Сообщение от greg zakharov Посмотреть сообщение
кратные двум, а кратные трём перейдут к следующему
не кратные двум, а имеющие определенный остаток. По-моему, это называется: класс вычетов по модулю 3.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.05.2023, 19:51
Цитата Сообщение от u235
не кратные двум
Оговорился, с кем не бывает? Бессоница делает человека несколько рассредоточенным.
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
26.05.2023, 20:36
Могу ошибиться, но что-то такое:
Python
1
2
3
4
5
6
7
8
n=10000
k=5002
res=0 # 0 - в стопке, 1- подписано, 2 - в корзину
while res==0:
    res=k%3
    n=n//3
    k=k//3
print(res)
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
26.05.2023, 20:52
u235, примерно так. Шаг можно будет расчитать относительно номера итерации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2023, 20:52
Помогаю со студенческими работами здесь

Будет ли OpenGL еще жить, или его скоро не будет?
Привет всем. У меня вопрос. Будет ли OpenGL еще развиваться, или его официально можно считать &quot;мертвым&quot; API?

Найти вероятность того, что наугад взятое двузначное число будет кратным или 2, или 4, или тому и другому
Найти вероятность того, что наугад взятое двузначное число будет кратным или 2, или 4, или тому и другому. Двузначные числа принадлежат...

Slider как сделать чтоб каждое деление было подписано цифрами от min до max
&lt;Slider x:Name=&quot;pathsize_xaml&quot; Minimum=&quot;20&quot; Maximum=&quot;100&quot; Value=&quot;20&quot; SelectionEnd=&quot;{Binding ElementName=pathsize_xaml, Path=Value}&quot;...

Заявление на отпуск без участия Генерального Директора
Уважаемые друзья, коллеги! Перед нашей организацией встала задача от руководства. Ген. директор не хочет учувствовать в процессе принятия...

Заявление сотрудника на выплату пособия - ошибка печати
Добрый день! ЗУП 3.0 Зарплата/больничные листы/(Выбираем больничный)/Вкладка&quot;Пилотный проект ФСС/Заявление сотрудника на выплату...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru