def kwadraty(w,h,obrazy): if w == 0 or h == 0: return(0) wym = min(w,h) for kw in reversed(obrazy): if kw <= wym: dx,mx = divmod(w, kw) dy,my = divmod(h, kw) bok = kwadraty(mx,h, obrazy) dol = kwadraty(w-mx, my, obrazy) if bok == -1 or dol == -1: return(-1) return(dx*dy+bok+dol) return(-1) w, h = map(int, input().split()) liczba = int(input()) obrazy = list(map(int, input().split())) print(kwadraty(w,h,obrazy))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | def kwadraty(w,h,obrazy): if w == 0 or h == 0: return(0) wym = min(w,h) for kw in reversed(obrazy): if kw <= wym: dx,mx = divmod(w, kw) dy,my = divmod(h, kw) bok = kwadraty(mx,h, obrazy) dol = kwadraty(w-mx, my, obrazy) if bok == -1 or dol == -1: return(-1) return(dx*dy+bok+dol) return(-1) w, h = map(int, input().split()) liczba = int(input()) obrazy = list(map(int, input().split())) print(kwadraty(w,h,obrazy)) |