Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  for e in itertools.permutations(range(9),n):
    x=sum([(i+1)*e[i] for i in range(len(e))])
    if x==s: c+=1
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  x=[]
  for e in itertools.permutations(range(9),n):
    x.append(sum([(i+1)*e[i] for i in range(len(e))]))
  print x.count(s)

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
eq=[""]*10
eq[0]="{0}"
eq[1]=eq[0]+"+2*{1}"
eq[2]=eq[1]+"+3*{2}"
eq[3]=eq[2]+"+4*{3}"
eq[4]=eq[3]+"+5*{4}"
eq[5]=eq[4]+"+6*{5}"
eq[6]=eq[5]+"+7*{6}"
eq[7]=eq[6]+"+8*{7}"
eq[8]=eq[7]+"+9*{8}"
eq[9]=eq[8]+"+10*{9}"
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  for e in itertools.permutations(range(10),n):
    if eval(eq[n-1].format(*e))==s: c+=1
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  for e in itertools.permutations(range(10),n):
    x=0
    for i in range(n):
      x+=sum(e[i:])
      if x>s:break
    else:
      if x==s: c+=1
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  for e1 in itertools.combinations(range(10),n):
    for e2 in itertools.permutations(e1,n):
      i=n
      x=0
      for e3 in e2:
        x+=i*e3
        i-=1
        if x>s:break
      else:
        if x==s:c+=1
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  for e in itertools.permutations(range(9),n):
    x=sum([i*j for i,j in zip(range(1,n+1),e)])
    if x==s: c+=1
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
def f0070(A,n,s):
  if n==1:
    if s in A: return 1
    else: return 0
  c=0
  for i in range(len(A)):
    b=s-A[i]*n
    if b<=0:continue
    if b>0: c+=f0070(A[:i]+A[i+1:],n-1,b)
  return c

for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  c=f0070(range(10),n,s)
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Time Limit Exceeded):
import itertools,sys
def f0070(A,n,s):
  if n==1:
    if s in A: return 1
    else: return 0
  c=0
  for i in range(len(A)):
    b=s-A[i]*n
    if b<=0:break
    c+=f0070(A[:i]+A[i+1:],n-1,b)
  return c

for a in sys.stdin:
  c=0
  n,s=map(int,a.split())
  c=f0070(range(10),n,s)
  print c

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
def f0070(A,n,s):
  if n==1:
    if s in A: f=1
    else f=0
    return f
  c=0
  A=sorted(A)
  A1=A[:n][::-1]
  A2=A[-n:]
  N=range(n)
  def f(A):
    return sum([(i+1)*A[i] for i in N])
  if f(A1)<=s<=f(A2):
    for i in range(len(A)):
      b=s-A[i]*n
      c+=f0070(A[:i]+A[i+1:],n-1,b)
  return c

for a in sys.stdin:
  n,s=map(int,a.split())
  print f0070(range(10),n,s)

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
def f0070(A,n,s):
  if n==1:return s in A
  A=sorted(A)
  A1=A[:n+1][::-1]
  A2=A[-n-1:]
  b1=0
  b2=0
  c=0
  for i in range(1,n+1):
    b1+=i*A1[i]
    b2+=i*A2[i]
  if b1<=s<=b2:
    for i in range(len(A)):
      c+=f0070(A[:i]+A[i+1:],n-1,s-A[i]*n)
  return c
for a in sys.stdin:
  n,s=map(int,a.split())
  print f0070(range(10),n,s)

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
d0=[0]*1024
d1=[[0 for i in range(286)]for j in range(1024)]
B=[1,2,4,8,16,32,64,128,256,512]

def init():
  global d
  for i in range(1024):
    binary=format(i,'b')
    n0=binary.count('1')
    d0[i]=n0
    if n0==1:
      d1[i][B.index(i)]=1
    else:
      for j in range(len(binary)):
        dp=n0*j
        if binary[-j-1]=='1':
          i2=i-B[j]
          for k in range(286-dp):
            d1[i][k+dp]+=d1[i2][k]
  return
  
def f0070(n,s):
  x=sum([d1[i][s] for i in range(1024) if d0[i]==n])
  return x

init()
for a in sys.stdin:
  n,s=map(int,a.split())
  print f0070(n,s)

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
d0=[0]*1024
d1=[[0 for i in range(286)]for j in range(1024)]
B=[1,2,4,8,16,32,64,128,256,512]

def init():
  global d0,d1
  for i in range(1024):
    binary=format(i,'b')
    n0=binary.count('1')
    d0[i]=n0
    if n0==1:
      d1[i][B.index(i)]=1
    else:
      for j in range(len(binary)):
        dp=n0*j
        if binary[-j-1]=='1':
          i2=i-B[j]
          for k in range(286-dp):
            d1[i][k+dp]+=d1[i2][k]
  return
  
def f0070(n,s):
  x=sum([d1[i][s] for i in range(1024) if d0[i]==n])
  return x

init()
for a in sys.stdin:
  n,s=map(int,a.split())
  print f0070(n,s)

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
K=1024
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(286)]for j in R]

def init():
  global C,D
  for i in R:
    s=format(i,'b')
    n=s.count('1')
    C[i]=n
    if n==1:D[i][B.index(i)]=1
    else:
      for j in range(len(s)):
        if s[-j-1]=='1':
          dp=n*j
          i2=i-B[j]
          for k in range(286-dp):
            D[i][k+dp]+=D[i2][k]
  return
   
init()
for a in sys.stdin:
  n,s=map(int,a.split())
  x=sum([D[i][s] for i in R if C[i]==n])
  print x

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
import sys
K=1024
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(331)]for j in R]

def init():
  global C,D
  for i in R:
    s=format(i,'b')
    n=s.count('1')
    C[i]=n
    if n==1:D[i][B.index(i)]=1
    else:
      for j in range(len(s)):
        if s[-j-1]=='1':
          dp=n*j
          i2=i-B[j]
          for k in range(331-dp):
            D[i][k+dp]+=D[i2][k]
  return
   
init()
for a in sys.stdin:
  n,s=map(int,a.split())
  x=sum([D[i][s] for i in R if C[i]==n])
  print x

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x

Buggy python submission (verdict: Runtime Error):
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
typedef vector <int> vi;
typedef vector <vi> vvi;
int K=1024,N=331,B[]={1,2,4,8,16,32,64,128,256,512},C[1024]={0};
vvi D(K,vi(N));
int init(){
	vi z(K);
	for (int i=0;i<N;i++)z[i]=0;
	for (int i=0;i<K;i++){
		D[i] = z;
		int tmp=i,tmp2=0,n=0;
		while (tmp){
			n+=tmp&1;
			tmp2++;
			tmp/=2;
		}
		C[i]=n;
		if(n==1)D[i][find(B,B+10,i)-B]=1;
		else{
			tmp = i;
			for (int j=0;j<tmp2;j++){
				if (tmp & 1){
					int dp = n*j,i2=i-B[j];
					for (int k=0;k<N-dp;k++)
						D[i][k+dp]+=D[i2][k];
				}
				tmp/=2;
			}
		}
	}
	return 0;
}
int main(){
	init();
	int n,s,i,x;
	while(1){
		cin>>n>>s;
		if(cin.eof())break;
		x=0;
		if(s<N)
			for(i=0;i<N;i++)
				if(C[i]==n)x+=D[i][s];
		cout<<x<<endl;
	}
}

Fixed submission:
import sys
K=1024
N=331
R=range(K)
B=[1,2,4,8,16,32,64,128,256,512]
C=[0]*K
D=[[0 for i in range(N)]for j in R]

for i in R:
  s=format(i,'b')
  n=s.count('1')
  C[i]=n
  if n==1:D[i][B.index(i)]=1
  else:
    for j in range(len(s)):
      if s[-j-1]=='1':
        dp=n*j
        i2=i-B[j]
        for k in range(N-dp):
          D[i][k+dp]+=D[i2][k]
   
for a in sys.stdin:
  n,s=map(int,a.split())
  x=0
  if s<N:x=sum([D[i][s] for i in R if C[i]==n])
  print x