• Предмет: Информатика
  • Автор: sashahripko1303
  • Вопрос задан 6 лет назад

Срочно!!!
Яблука
У Козака Вуса є нескінченна кількість зелених, жовтих та червоних яблук.
Він буде їх виставляти в один ряд за наступним алгоритмом:
Спочатку g зелених яблук, потім y жовтих, потім r червоних, потім y жовтих, потім g зелених, а потім все знову нескінченну кількість разів. Наприклад, якщо g=1, y=3, r=4, то перші яблука виглядатимуть так:
GYYYRRRRYYYGGYYYRRRRYYYGGYYYRRR...
Тобто, всі яблука можна розбити на блоки. На цьому малюнку один блок це GYYYRRRRYYYG. Зверніть увагу, що блок починається і закінчується на один й той же символ. Саме тому на першому малюнку йдуть дві G підряд попри те, що g=1.
Знайдіть колір яблука, що знаходиться на n-ій позиції.
Вхідні дані
Перший рядок містить чотири цілі числа n, g, y, r (1≤n,g,y,r≤10
12
).
Зверніть увагу, що числа не вміщаються у 32-бітні цілочисельні типи даних. Тому потрібно використовувати 64-бітні цілочисельні типи даних, такі як long long в C++, long в Java чи int64 в Pascal.
Вихідні дані
Якщо колір буде зелений, то виведіть «G».
Якщо колір буде жовтий, то виведіть «Y».
Якщо колір буде червоний, то виведіть «R».
Приклади
Нижче ви знайдете приклади вхідних даних та відповідей, які має вивести ваша програма.

Вхідні дані №1
1 1 3 4
Відповідь №1
G
Вхідні дані №2
2 1 3 4
Відповідь №2
Y

n, g, y, r = map(int, input().split())
c = 0
# todo
print(c)

Ответы

Ответ дал: maxonix0306
1

Ответ:

На 72 балла

n, g, y, r = map(int, input().split())

c = 0

e=g*2+y*2+r

while n>g*2+y*2+r:

  n=n-e

if n <= g or g+y*2+r < n:

  print('G')

elif g < n <= g+y or g+y+r < n <= g+2*y+r:

  print('Y')

elif g+y < n <= g+y+r:

  print('R')

else:

  print('no')

Объяснение:

Вас заинтересует