Last active
March 24, 2021 11:52
-
-
Save kitten-owner/6cb64d91c65de5494d17b3ed728976b0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #Имеется набор данных, состоящий из пар положительных целых чисел. | |
| #Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была | |
| #максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную | |
| #сумму, соответствующую условиям задачи. | |
| with open("27/1/27-1b.txt", "r") as f: | |
| n = int(f.readline()) # Считываем перввую строку в которой указано кол-во пар чисел | |
| s = 0 # Это переменная - наша сумма | |
| A = [] # Это список, куда будет помещаться разность пары чисел | |
| for i in range(n): | |
| x, y = map(int, f.readline().split()) # Считываем пару чисел из каждой строчки | |
| s = s + max(x, y) # Находим максимальную сумму | |
| raz = abs(x - y) # Находим разность чисел в паре | |
| if raz % 3 != 0: # Просписываем, чтобы разность не была кратана 3, ибо тогда счёт будет неверным | |
| A.append(raz) # Добавляем разницу в список | |
| A.sort() # Сортируем список | |
| if s % 3 != 0: # Если max сумма и так не делится на 3 то выводим её (что наврят-ли будет) | |
| print(s) | |
| else: | |
| # Далее идёт перебор в ходе которого, от max суммы будет одняться разность, | |
| # до такого моента пока она не станет не кратной 3 | |
| q = 0 | |
| for i in range(len(A)): | |
| while s % 3 == 0: | |
| s = s - A[q] | |
| if s % 3 != 0: | |
| print(s) | |
| else: | |
| q += 1 | |
| #Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма в | |
| #сех выбранных чисел не делилась на 3 и при этом была минимально возможной. Гарантируется, что искомую сумму получить можно. | |
| #Программа должна напечатать одно число – минимально возможную сумму, соответствующую условиям задачи. | |
| with open("27/1/27-1b.txt", "r") as f: | |
| n = int(f.readline()) | |
| s = 0 | |
| A = [] | |
| for i in range(n): | |
| x, y = map(int, f.readline().split()) | |
| s += min(x, y) | |
| raz = abs(x - y) | |
| if raz % 3 != 0: | |
| A.append(raz) | |
| A.sort() | |
| if s%3!=0: | |
| print(s) | |
| else: | |
| q = 0 | |
| for i in range(len(A)): | |
| while s%3==0: | |
| s = s + A[q] | |
| if s%3!=0: | |
| print(s) | |
| else: | |
| q+=1 | |
| #Имеется набор данных, состоящий из пар положительных целых чисел. | |
| #Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел делилась на 3 | |
| #и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. | |
| #Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи. | |
| with open("27/2/27-2a.txt", "r") as f: | |
| n = int(f.readline()) | |
| s = 0 | |
| A=[] | |
| for i in range(n): | |
| x, y = map(int, f.readline().split()) | |
| s = s + max(x, y) | |
| raz = abs(x - y) | |
| A.append(raz) | |
| A.sort() | |
| if s % 3 == 0: | |
| print(s) | |
| else: | |
| q=0 | |
| for i in range(len(A)): | |
| while s%3!=0: | |
| s = s - A[q] | |
| if s%3==0: | |
| print(s) | |
| else: | |
| q+=1 | |
| #Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, | |
| #чтобы сумма всех выбранных чисел делилась на 3 и при этом была минимально возможной. Гарантируется, | |
| #что искомую сумму получить можно. Программа должна напечатать одно число – минимально возможную сумму, соответствующую условиям за-дачи. | |
| with open("27/3/27-3b.txt", "r") as f: | |
| n = int(f.readline()) | |
| s = 0 | |
| A = [] | |
| for i in range(n): | |
| x, y = map(int, f.readline().split()) | |
| s = s + min(x, y) | |
| raz = abs(x - y) | |
| A.append(raz) | |
| A.sort() | |
| if s % 3 == 0: | |
| print(s) | |
| else: | |
| q = 0 | |
| for i in range(len(A)): | |
| while s % 3 != 0: | |
| s = s + A[q] | |
| if s % 3 == 0: | |
| print(s) | |
| else: | |
| q += 1 | |
| #Имеется набор данных, состоящий из положительных целых чисел, каждое из которых не превышает 1000. | |
| #Требуется найти для этой последовательности контрольное значение – наи-большее число R, удовлетворяющее следующим условиям: | |
| #– R – произведение двух различных переданных элементов последовательности («различные» означает, | |
| #что не рассматриваются квадраты переданных чисел, произведения различных, но равных по величине элементов допускаются); | |
| #– R делится на 6. | |
| f = open("27/6/27-6b.txt") | |
| n = int(f.readline()) | |
| #Произведение двух чисел делится на 6, если: | |
| #— один из сомножителей делится на 6 (второй может быть любым) | |
| #— ни один из сомножителей не делится на 6, но один из сомножителей делится на 3, а другой – на 2 | |
| maxX = 0 # - самое большое число среди всех элементов последовательности | |
| # ( также может быть если max6 > maxX, то maxX = max6 ) | |
| max6 = 0 # - самое большое число, кратное 6; | |
| max3 = 0 # - самое большое число, кратное 3, но не кратное 2 | |
| max2 = 0 # - самое большое число, кратное 2, но не кратное 3 | |
| for i in range(n): | |
| x = int(f.readline()) | |
| if x % 6 == 0 and x > max6: | |
| max6 = x | |
| if max6 > maxX: | |
| maxX = max6 | |
| else: | |
| if x > maxX: | |
| maxX = x | |
| if x % 2 == 0 and x > max2: | |
| max2 = x | |
| elif x % 3 == 0 and x > max3: | |
| max3 = x | |
| R = max( max6*maxX, max2*max3 ) # Находим максимальное R | |
| print( R ) | |
| # Для наглядной проверки наши выводим максимальные значения | |
| print( max6, maxX, max6*maxX ) | |
| print( max2, max3, max2*max3 ) | |
| #Имеется набор данных, состоящий из положительных целых чисел, каждое из которых не превышает 1000. | |
| #Требуется найти для этой последовательности контрольное значение – наи-большее число R, удовлетворяющее следующим условиям: | |
| #– R – произведение двух различных переданных элементов последовательности | |
| #(«различные» означает, что не рассматриваются квадраты переданных чисел, произведения различных, но равных по величине элементов допускаются); | |
| #– R делится на 7 и не делится на 49. | |
| f = open("27/7/27-7a.txt") | |
| n = int(f.readline()) | |
| max7 = 0 | |
| maxX = 0 | |
| for i in range(n): | |
| x = int(f.readline()) | |
| if x > max7 and x % 7 == 0 and x % 49 != 0: | |
| max7 = x | |
| if x % 7 != 0 and x > maxX: | |
| maxX = x | |
| R = max7 * maxX | |
| if R == 0: | |
| R = 1 | |
| print(R) | |
| print(max7, maxX) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment