Загрузка данных


import sys
from collections import Counter

def main():
    # Чтение всех входных данных из стандартного потока
    input_data = sys.stdin.read().split()
    if not input_data:
        return
    
    n = int(input_data[0])
    
    # Словари для подсчета точек на прямых, параллельных осям X, Y и Z
    lines_x = Counter()  # Ключ: (y, z)
    lines_y = Counter()  # Ключ: (x, z)
    lines_z = Counter()  # Ключ: (x, y)
    
    idx = 1
    for _ in range(n):
        x = int(input_data[idx])
        y = int(input_data[idx+1])
        z = int(input_data[idx+2])
        idx += 3
        
        lines_x[(y, z)] += 1
        lines_y[(x, z)] += 1
        lines_z[(x, y)] += 1
        
    # Изначально любое подмножество из 1 точки всегда согласовано
    max_subset = 1
    
    if lines_x:
        max_subset = max(max_subset, max(lines_x.values()))
    if lines_y:
        max_subset = max(max_subset, max(lines_y.values()))
    if lines_z:
        max_subset = max(max_subset, max(lines_z.values()))
        
    print(max_subset)

if __name__ == '__main__':
    main()










import sys

def main():
    # Чтение всех данных из стандартного ввода
    input_data = sys.stdin.read().split()
    if not input_data:
        return
    
    n = int(input_data[0])
    
    # Исходный массив A и целевой массив B
    # Индексы в input_data: 
    # A занимает от 1 до n, B занимает от n + 1 до 2*n
    
    prev_d = 0
    total_operations = 0
    
    for i in range(n):
        a = int(input_data[1 + i])
        b = int(input_data[1 + n + i])
        
        d = b - a
        
        # Если целевое значение меньше исходного, решение невозможно
        if d < 0:
            print("NO SOLUTION")
            return
        
        # Если разность увеличилась по сравнению с предыдущим шагом
        if d > prev_d:
            total_operations += (d - prev_d)
            
        prev_d = d

    print(total_operations)

if __name__ == '__main__':
    main()