Problem:


Score : 200 points

Problem Statement

You have A 500-yen coins, B 100-yen coins and C 50-yen coins (yen is the currency of Japan).
In how many ways can we select some of these coins so that they are X yen in total?

Coins of the same kind cannot be distinguished. Two ways to select coins are distinguished when, for some kind of coin, the numbers of that coin are different.

Constraints

0 \leq A, B, C \leq 50

A + B + C \geq 1

50 \leq X \leq 20 000

A, B and C are integers.

X is a multiple of 50.

Input

Input is given from Standard Input in the following format:

A
B
C
X

Output

Print the number of ways to select coins.

Sample Input 1

2
2
2
100

Sample Output 1

2

There are two ways to satisfy the condition:

Select zero 500-yen coins, one 100-yen coin and zero 50-yen coins.

Select zero 500-yen coins, zero 100-yen coins and two 50-yen coins.

Sample Input 2

5
1
0
150

Sample Output 2

0

Note that the total must be exactly X yen.

Sample Input 3

30
40
50
6000

Sample Output 3

213



Sample input:
2
2
2
100


Sample output:
2

Submission status: Accepted

Solution code:
import subprocess
import gzip, base64, os
import stat

gz = b'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'
bin = gzip.decompress(base64.b64decode(gz))
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
with open(pymain, "wb") as f:
    f.write(bin)
os.chmod(pymain, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
if p == "":
    pymain = "./" + pymain
subprocess.call(pymain)


# compiled by pythran
'''
#pythran export main2()
def main2():
    stdin = open('/dev/stdin')
    A = int(stdin.readline())
    B = int(stdin.readline())
    C = int(stdin.readline())
    X = int(stdin.readline())
    count = 0
    for i in range(A + 1):
        for j in range(B + 1):
            for k in range(C + 1):
                if 500 * i + 100 * j + 50 * k == X:
                    count += 1
    print(count)

'''

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

cnt = 0

for i in range(A+1):
    for j in range(B+1):
        for l in range(C+1):
            if (X == ( (500 * i) + (100 * j) + (50 * l) )):
                cnt += 1

print (cnt)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

ans = 0
for a in range(A + 1):
    for b in range(B + 1):
        q = (X - (500 * a + 100 * b)) / 50
        if q >= 0 and q <= C:
            ans += 1
print(ans)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

c = 0

m500 = min(X//500, A) #500円玉の最大個数
for i in range(m500+1):
  Y = X - i * 500
  m100 = min(Y//100, B) #100円玉の最大個数
  for j in range(m100+1):
    Z = Y - j * 100
    if Z <= C*50:
      c += 1

print(c)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
ans = 0
for i in range(A+1):
    for j in range(B+1):
        if 0 <= (X-500*i-100*j)/50 <= C:
            ans += 1
print(ans)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
flg= 0
for i in range(A+1):
    for j in range(B+1):
        for k in range(C+1):
            tmp = i * 500 + j * 100 + k * 50
            if tmp == X:
                flg += 1

print(flg)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
count = 0
for aa in range(a + 1):
         for bb in range (b + 1):
                  for cc in range (c + 1):
                           if 500 * aa + 100 * bb + 50 * cc == x:
                                    count += 1
print(count)

Submission status: Accepted

Solution code:
A = int(input()) # 500
B = int(input()) # 100
C = int(input()) # 50
X = int(input())

count = 0

for i in range(min(A, X // 500) + 1):
  tmp = X - 500 * i
  for j in range(min(B, tmp // 100) + 1):
    tmp2 = tmp - 100 * j
    k = tmp2 / 50
    if 0 <= k <= C:
      # print(i, j, k)
      count += 1
      
print(count)

Submission status: Accepted

Solution code:
VALUES = [500, 100, 50]

a = int(input())
b = int(input())
c = int(input())
x = int(input())

ways = 0
for ia in range(a + 1):
  for ib in range(b + 1):
    for ic in range(c + 1):
      s = ia * VALUES[0] + ib * VALUES[1] + ic * VALUES[2]
      ways += (1 if s == x else 0)
      
print(ways)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0
for i in range(a + 1):
    for j in range(b + 1):
        for k in range(c + 1):
            if 500 * i + 100 * j + 50 * k == x:
                cnt += 1
print(cnt)

Submission status: Accepted

Solution code:

money = [int(input()) for i in range(3)]
N = int(input())

res = 0

for l in range(money[0]+1):
    for m in range(money[1]+1):
        for n in range(money[2]+1):
            if N == 500*l + 100*m + 50*n:
                res += 1

print(res)

Submission status: Accepted

Solution code:
a, b, c, x = [int(input()) for _ in range(4)]
print(len(['yes' for i in range(a+1) for j in range(b+1) for k in range(c+1) if 500*i + 100*j + 50*k == x]))

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
count = 0
while 500 * A > X:
    A = A - 1
while A >= 0:
    B_1 = B
    X_A = X - 500 * A
    while 100 * B_1 > X_A:
        B_1 = B_1 - 1
    while B_1 >= 0:
        X_B = X_A - 100 * B_1
        if 50 * C >= X_B:
            count = count + 1
        else:
            pass
        B_1 = B_1 - 1
    A = A - 1
print(count)

Submission status: Accepted

Solution code:
a=int(input())
b=int(input())
c=int(input())
x=int(input())
count=0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if x == (i*500 + j*100 + k*50):
                count+=1
print(count)

Submission status: Accepted

Solution code:
A=int(input())
B=int(input())
C=int(input())
X=int(input())
ABC=0
for a in range(A+1):
    for b in range(B+1):
        for c in range(C+1):
            if X==(500*a + 100*b + 50*c):
                ABC +=1
print(ABC)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

count = 0 
for i in range(a + 1):
    for j in range(b + 1):
        for k in range(c + 1):
            if x == (i * 500 + j * 100 + k * 50):
                count += 1

print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
ans = 0
aa = 0
for i  in range(a+1):
    for j  in range(b+1): 
        for k  in range(c+1):
            aa = i * 500 + j * 100 + k * 50;
            if aa == x: ans += 1

print(ans)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if 500 * i + 100 * j + 50 * k == x:
                cnt += 1
print(cnt)

Submission status: Accepted

Solution code:
import itertools

A = int(input())
B = int(input())
C = int(input())
X = int(input())//50
count = 0

for i,j,k in itertools.product(range(A+1),range(B+1),range(C+1)):
    if i*10+j*2+k == X:
        count += 1

print(count)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
s = 0

for a in range(A+1):
    for b in range(B+1):
        for c in range(C+1):
            total = 500*a + 100*b + 50*c
            if total == X:
                s+=1
print(s)

Submission status: Accepted

Solution code:
# coding:UTF-8

cA = 500
cB = 100
cC = 50

a = int(input())
b = int(input())
c = int(input())
x = int(input())  # 要求金額

cnt = 0
for i in range(0, a + 1):
    for j in range(0, b + 1):
        for k in range(0, c + 1):
            sum = cA * i + cB * j + cC * k
            if sum == x:
                cnt+=1

print(cnt)

Submission status: Accepted

Solution code:
A,B,C=int(input()),int(input()),int(input())
X=int(input())

res = 0
for a in range(A+1):
  for b in range(B+1):
    for c in range(C+1):
      if a*500+b*100+c*50==X:
        res+=1

print(res)

Submission status: Accepted

Solution code:
a=int(input())
b=int(input())
c=int(input())
x = int(input())

count = 0
for i in range(a+1):
  for j in range(b+1):
    for t in range(c+1):
      if (500*i+ 100*j+ 50*t) == x:
        count += 1

print(count)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
D = int(input())

count = 0

for x in range(A+1):
    for y in range(B+1):
        for z in range(C+1):
            if x*500 + y*100 + z*50 == D:
                count += 1

print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

count = 0
for i in range(a+1):
    for n in range(b+1):
        for m in range(c+1):
            if 500*i + 100*n + 50*m == x:
                count += 1
print(count)

Submission status: Accepted

Solution code:
a=int(input())
b=int(input())
c=int(input())
X=int(input())

0<=a,b,c<=50
a+b+c>=1
count=0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if(500*i)+(100*j)+(50*k)==X:
                count+=1
print(count)

Submission status: Accepted

Solution code:
A=int(input())
B=int(input())
C=int(input())
X=int(input())
d=0
for a in range(A+1):
    for b in range(B+1):
        for c in range(C+1):
            if 500*a+100*b+50*c==X:
                d+=1
print(d)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
D = int(input())


count=0
res =0

for a in range(A+1):
    for b in range(B+1):
        for c in range(C+1):
            total = 500*a +100*b +50*c
            if total == D:
                res += 1
            
print(res)

Submission status: Accepted

Solution code:
A=int(input())
B=int(input())
C=int(input())
X=int(input())
count=0
for i in range(A+1):
  for j in range(B+1):
    for k in range(C+1):
      if i*500+j*100+k*50==X:
        count +=1
print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
ans = 0

for i in range(a+1):
    if 500*i > x:
        break;
    else:
        for j in range(b+1):
            if 500*i+100*j > x:
                break;
            elif (x-500*i-100*j)/50 <= c:
                ans += 1
print(ans)

Submission status: Accepted

Solution code:
def resolve():
    a = int(input())
    b = int(input())
    c = int(input())
    x = int(input())
    ans = 0
    for ai in range(a + 1):
        for bi in range(b + 1):
            for ci in range(c + 1):
                mon = 500 * ai + 100 * bi + 50 * ci
                if mon == x:
                    ans += 1
    print(ans)


if __name__ == "__main__":
    resolve()

Submission status: Accepted

Solution code:
a,b,c,d=[int(input()) for i in range(4)]
x = 0
for l in range(a+1):
  for m in range(b+1):
    for n in range(c+1):
      if (500*l + 100*m + 50*n) == d:
        x +=1
print(x)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
ans = 0

for p in range(A + 1):
    for q in range(B + 1):
        for r in range(C + 1):
            if 500 * p + 100 * q + 50 * r == X:
                ans = ans + 1
print(ans)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

count = 0
result = 0
for aa in range(a+1):
    for bb in range(b+1):
        for cc in range(c+1):
            result = aa*500 + bb*100 + cc*50
            if result == x:
                count+=1

print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

count = 0
n = x // 50
for aa in range(a + 1):
    for bb in range(b + 1):
        for cc in range(c + 1):
            val = aa * 10 + bb * 2 + cc
            if val == n:
                count += 1
print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0
for i in range(c+1):
    for j in range(b+1):
        for k in range(a+1):
            if i*50 + j*100 + k*500 ==x:
                cnt +=1
print(cnt)

Submission status: Accepted

Solution code:
from collections import defaultdict, Counter
from heapq import heapify, heappop, heappush
from sys import stdin

def main():
    A = int(input())
    B = int(input())
    C = int(input())
    x = int(input())

    ans = 0
    for a in range(0, A+1):
        for b in range(0, B+1):
            for c in range(0, C+1):
                if 500*a+100*b+50*c == x:
                    ans += 1
    print(ans)

input = lambda: stdin.readline().rstrip()
main()

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
ans = 0
for i in range(0,A+1):
    for j in range(0,B+1):
        for _ in range(0,C+1):
            if 500*i+100*j+_*50 == X:
                ans += 1
print(ans)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
ans = 0
for a in range(A + 1):
  for b in range(B + 1):
    for c in range(C + 1):
      if 500 * a + 100 * b + 50 * c == X: ans += 1
print(ans)

Submission status: Accepted

Solution code:
a=int(input())
b=int(input())
c=int(input())
x=int(input())
ans=0
for i in range(a+1):
  for j in range(b+1):
    for k in range(c+1):
      ans+=[0,1][500*i+100*j+50*k==x]
print(ans)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

count = 0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if 500 * i + 100 * j + 50 * k == x:
                count += 1
print(count)

Submission status: Accepted

Solution code:
a, b, c, x = [int(input()) for _ in range(4)]
count=0
a2 = x // 500 #500円玉は何枚必要か
if a < a2: #足りない時
    a3 = a
else: #足りてる時
    a3 = a2
for i in range(a3+1):
    y = x -500*i
    b2 = y//100
    if b < b2:
        b3 = b
    else:
        b3 = b2
    for j in range(b3 + 1):
        z = y - 100 * j
        if z // 50 <= c:
            count += 1
print(count)

Submission status: Accepted

Solution code:
a,b,c,x = map(int,[input() for i in range(4)])

ans=0
for i in range(a+1):
    for ii in range(b+1):
        for iii in range(c+1):
            if  500*i+100*ii+50*iii == x:
                ans  += 1

print(ans)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
count = 0

for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            money = 500 * i + 100 * j + 50 * k
            if money == x:
                count += 1

print(count)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

counter = 0
for i in range(A+1):
  for j in range(B+1):
    for k in range(C+1):
      if (500 * i + 100 * j + 50 * k) == X:
        counter += 1

print(counter)

Submission status: Accepted

Solution code:
a, b, c, x = [int(input()) for i in range(4)]
count = 0
for i in range(a+1):
    for j in range(b+1):
        for k in range(c+1):
            if i*500+j*100+k*50 == x:
                count += 1
print(count)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

couter = 0

for i in range(A+1):
    for j in range(B+1):
        for k in range(C+1):
            if 500 * i + 100 * j + 50 * k == X:
                couter += 1
print(couter)

Submission status: Accepted

Solution code:
A, B, C, X = [int(input()) for _ in range(4)]

combi = 0

for ai in range(A+1):
  for bi in range(B+1):
    for ci in range(C+1):
      if X == 500 * ai + 100 * bi + 50 * ci:
        combi += 1
print(combi)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
count = 0
for ai in range(a+1):
    for bi in range(b+1):
        for ci in range(c+1):
            if 500*ai+100*bi+50*ci == x:
                count += 1
print(count)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())
count=0
for a in range(A+1):
    moneya = 500*a
    for b in range(B+1):
        moneyb = moneya + 100*b
        for c in range(C+1):
            moneyc = moneyb + 50*c
            if moneyc == X:
                count+=1
print(count)

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())

cnt = 0

for A in range(a+1):
  for B in range(b+1):
    for C in range(c+1):
      if 500*A + 100*B + 50*C == x:
        cnt = cnt + 1

if cnt > 0 :
  print(cnt)
else:
  print(0)

Submission status: Accepted

Solution code:
A = int(input())
B = int(input())
C = int(input())
X = int(input())

ans = 0

for a in range(A + 1):
    for b in range(B + 1):
        for c in range(C + 1):
            if a * 500 + b * 100 + c * 50 == X:
                ans += 1

print(ans)

Submission status: Accepted

Solution code:
def main():
    A = int(input())
    B = int(input())
    C = int(input())
    X = int(input())
    count = 0
    for i in range(A+1):
        for j in range(B+1):
            for k in range(C+1):
                if i*500 + j*100 + k*50 == X:
                    count += 1
    return count

if __name__ == '__main__':
    print(main())

Submission status: Accepted

Solution code:
a = int(input())
b = int(input())
c = int(input())
x = int(input())
cnt = 0

for i in range(0,a+1):
  for j in range(0,b+1):
    for k in range(0,c+1):
      if 500*i+100*j+50*k == x:
        cnt += 1
        
print(cnt)

Submission status: Accepted

Solution code:
five_hund = int(input())
hund = int(input())
fifty = int(input())
total = int(input())

ptn = 0

for i in range(0, five_hund+1):
  for j in range(0, hund+1):
    for k in range(0, fifty+1):
      if total == i * 500 + j * 100 + k * 50:
        ptn += 1
    
print(ptn)

Submission status: Accepted

Solution code:
a,b,c,x=[int(input()) for i in range(4)]
ans=0
for i in range(a+1):
  for j in range(b+1):
    if (x-i*500-j*100)%50==0 and 0<=(x-i*500-j*100)//50<=c:
      ans+=1
print(ans)