|
| 1 | +import sys |
| 2 | +input = sys.stdin.readline |
| 3 | +ri = lambda: int(input()) |
| 4 | +#rl = lambda: [int(x) if x.isdecimal() else x for x in input().split()] |
| 5 | +#rl = lambda: list(input().split())) |
| 6 | +rl = lambda: map(int,input().split()) |
| 7 | +rr = lambda N: [list(l) for l in zip(*[rl() for _ in range(N)])] |
| 8 | +YN = lambda b: print('YES') if b else print('NO') |
| 9 | +yn = lambda b: print('Yes') if b else print('No') |
| 10 | +OE = lambda x: print('Odd') if x%2 else print('Even') |
| 11 | +INF = 10**18 |
| 12 | +MOD = 10**9+7 |
| 13 | + |
| 14 | +N = ri() |
| 15 | +ga,sa,ba = rl() |
| 16 | +gb,sb,bb = rl() |
| 17 | +G = int(ga>=gb) |
| 18 | +S = int(sa>=sb) |
| 19 | +B = int(ba>=bb) |
| 20 | +GSB =G+S+B |
| 21 | +xa,xb,ya,yb,za,zb=ga,gb,sa,sb,ba,bb |
| 22 | +mode = 0 |
| 23 | +if GSB==3: |
| 24 | + mode = 1 |
| 25 | +elif GSB==2: |
| 26 | + mode = 1 |
| 27 | + if G==0: |
| 28 | + None |
| 29 | + elif S==0: |
| 30 | + xa,xb,ya,yb = sa,sb,ga,gb |
| 31 | + elif B==0: |
| 32 | + xa,xy,za,zb = ba,bb,ga,gb |
| 33 | +elif GSB==1: |
| 34 | + mode = 0 |
| 35 | + if G==1: |
| 36 | + None |
| 37 | + elif S==1: |
| 38 | + xa,xb,ya,yb = sa,sb,ga,gb |
| 39 | + elif B==1: |
| 40 | + xa,xy,za,zb = ba,bb,ga,gb |
| 41 | +elif GSB==0: |
| 42 | + mode = 0 |
| 43 | + |
| 44 | +ans = 0 |
| 45 | +if GSB==0 or GSB==3: |
| 46 | + xa,xb,ya,yb,za,zb=min(xa,xb),max(xa,xb),min(ya,yb),max(ya,yb),min(za,zb),max(za,zb) |
| 47 | + if za > ya: |
| 48 | + ya,yb,za,zb = za,zb,ya,yb |
| 49 | + for x in range(N//xa+1): |
| 50 | + n0 = N - x*xa |
| 51 | + for y in range(n0//ya+1): |
| 52 | + n1 = n0 - y*ya |
| 53 | + z = n1//za |
| 54 | + n1 = n1 - z*za |
| 55 | + ans = max(ans,n1+x*xb+y*yb+z*zb) |
| 56 | +elif GSB==1: |
| 57 | + if za > ya: |
| 58 | + ya,yb,za,zb = za,zb,ya,yb |
| 59 | + for y in range(N//ya+1): |
| 60 | + n = N - y*ya |
| 61 | + z = n//za |
| 62 | + n = n - z*za |
| 63 | + n = n + y*yb + z*zb |
| 64 | + x = n//xb |
| 65 | + n = n - x*xb |
| 66 | + ans = max(ans,n+x*xa) |
| 67 | +elif GSB==2: |
| 68 | + if zb > yb: |
| 69 | + ya,yb,za,zb = za,zb,ya,yb |
| 70 | + for x in range(N//xa+1): |
| 71 | + n0 = N - x*xa + x*xb |
| 72 | + for y in range(n0//yb+1): |
| 73 | + n1 = n0 - y*yb |
| 74 | + z = n1//zb |
| 75 | + n1 = n1 - z*zb |
| 76 | + ans = max(ans,n1+y*ya+z*za) |
| 77 | + |
| 78 | +print(ans) |
| 79 | + |
| 80 | + |
0 commit comments