import sys input = sys.stdin.readline ############ ---- Input Functions ---- ############ def inp(): return(int(input())) def inlt(): return(list(map(int,input().split()))) def insr(): s = input() return(list(s[:len(s) - 1])) def invr(): return(map(int,input().split())) def suma(lista): return(sum(int(x) for x in lista)) debug = False sciana = inlt() a = sciana[0] b = sciana[1] ile = inp() d = inlt() if (a % d[0] + b % d[0] != 0): print(-1) else: ile_obrazow = 0 ktory_obraz = len(d) - 1 a_tmp = a b_tmp = b gl = 10 def obrazy(a, b): if a * b == 0: return 0 ktory_obraz = len(d) - 1 max_rozmiar = d[ktory_obraz] while (max_rozmiar > a) or (max_rozmiar > b): ktory_obraz = ktory_obraz - 1 max_rozmiar = d[ktory_obraz] if debug : print(a, b, "max_rozmiar", max_rozmiar, ";", a//max_rozmiar, b//max_rozmiar, a//max_rozmiar * b//max_rozmiar) ile_obrazow = a//max_rozmiar * b//max_rozmiar if debug : print("idziemy wglab", b, a%max_rozmiar, "oraz", a - a%max_rozmiar, b%max_rozmiar) ile_obrazow_a = obrazy(b, a%max_rozmiar) ile_obrazow_b = obrazy(a - a%max_rozmiar, b%max_rozmiar) if debug : print(a, b, ile_obrazow, ile_obrazow_a, ile_obrazow_b) return ile_obrazow + ile_obrazow_a + ile_obrazow_b print(obrazy(a, b))
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import sys input = sys.stdin.readline ############ ---- Input Functions ---- ############ def inp(): return(int(input())) def inlt(): return(list(map(int,input().split()))) def insr(): s = input() return(list(s[:len(s) - 1])) def invr(): return(map(int,input().split())) def suma(lista): return(sum(int(x) for x in lista)) debug = False sciana = inlt() a = sciana[0] b = sciana[1] ile = inp() d = inlt() if (a % d[0] + b % d[0] != 0): print(-1) else: ile_obrazow = 0 ktory_obraz = len(d) - 1 a_tmp = a b_tmp = b gl = 10 def obrazy(a, b): if a * b == 0: return 0 ktory_obraz = len(d) - 1 max_rozmiar = d[ktory_obraz] while (max_rozmiar > a) or (max_rozmiar > b): ktory_obraz = ktory_obraz - 1 max_rozmiar = d[ktory_obraz] if debug : print(a, b, "max_rozmiar", max_rozmiar, ";", a//max_rozmiar, b//max_rozmiar, a//max_rozmiar * b//max_rozmiar) ile_obrazow = a//max_rozmiar * b//max_rozmiar if debug : print("idziemy wglab", b, a%max_rozmiar, "oraz", a - a%max_rozmiar, b%max_rozmiar) ile_obrazow_a = obrazy(b, a%max_rozmiar) ile_obrazow_b = obrazy(a - a%max_rozmiar, b%max_rozmiar) if debug : print(a, b, ile_obrazow, ile_obrazow_a, ile_obrazow_b) return ile_obrazow + ile_obrazow_a + ile_obrazow_b print(obrazy(a, b)) |