Advertisement
darya_leushkina

12 номер ЕГЭ информатика шаблоны решений

Jun 14th, 2021 (edited)
497
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.46 KB | None | 0 0
  1. # 13544
  2. s = '3' + '9' * 93  # формируем изначальную строку
  3. while '19' in s or '299' in s or '3999' in s:
  4.     s = s.replace('19', '2', 1)
  5.     s = s.replace('299', '1', 1)
  6.     s = s.replace('3999', '1', 1)
  7. print(s)
  8.  
  9. # 28689
  10. s = '1' * 78
  11. while '111' in s:
  12.     s = s.replace('111', '2', 1)
  13.     s = s.replace('222', '11', 1)
  14. print(s)
  15.  
  16. # 26957
  17. s = '>' + '1' * 26 + '2' * 10 + '3' * 14
  18. while '>1' in s or '>2' in s or '>3' in s:
  19.     s = s.replace('>1', '22>', 1)
  20.     s = s.replace('>2', '2>', 1)
  21.     s = s.replace('>3', '1>', 1)
  22. ans = s.count('1') + 2 * s.count('2') + s.count('3')
  23. print(ans)
  24.  
  25. # 35470 НАДО РАЗОБРАТЬ
  26. def f(s):  # вынесла алгоритм из задания в отдельную функцию
  27.     while '01' in s or '02' in s or '03' in s:
  28.         s = s.replace('01', '2302', 1)
  29.         s = s.replace('02', '10', 1)
  30.         s = s.replace('03', '201', 1)
  31.     return s
  32.  
  33.  
  34. # выполняю этот алгоритм отдельно для строк
  35. s1 = f('01')
  36. s2 = f('02')
  37. s3 = f('03')
  38.  
  39. ans = False
  40. # подбираю количествое 1,2 и 3. Если сходится, останавливаю цикл.
  41. for x1 in range(100):
  42.     for x2 in range(100):
  43.         for x3 in range(100):
  44.             s = x1 * s1 + x2 * s2 + x3 * s3
  45.             if s.count('1') == 40 and s.count('2') == 10 and s.count('3') == 8:
  46.                 ans = True
  47.     if ans:
  48.         break
  49. print(x1)
  50.  
  51.  
  52. # 35901 НАДО РАЗОБРАТЬ (тоже самое, но чуть короче)
  53. def f(s):  # вынесла алгоритм из задания в отдельную функцию
  54.     while '01' in s or '02' in s or '03' in s:
  55.         s = s.replace('01', '2302', 1)
  56.         s = s.replace('02', '10', 1)
  57.         s = s.replace('03', '201', 1)
  58.     return s
  59.  
  60.  
  61. ans = False
  62. # подбираю количествое 1,2 и 3. Если сходится, останавливаю цикл.
  63. for x1 in range(100):
  64.     for x2 in range(100):
  65.         for x3 in range(100):
  66.             s = x1 * f('01') + x2 * f('02') + x3 * f('03')
  67.             if s.count('1') == 50 and s.count('2') == 12 and s.count('3') == 7:
  68.                 ans = True
  69.     if ans:
  70.         break
  71. print(x1)
  72.  
  73. # 27272 в целом лёгкий
  74. for i in range(61, 150):
  75.     s = i * '1'
  76.     while '111' in s:
  77.         s = s.replace('111', '2', 1)
  78.         s = s.replace('222', '11', 1)
  79.     if s == '2211':
  80.         print(i)
  81.         break
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement