Pagini recente » Cod sursa (job #2878394) | Cod sursa (job #856335) | Cod sursa (job #622215) | Cod sursa (job #1100888) | Cod sursa (job #2738344)
#include<fstream>
#define MOD 10007
using namespace std;
ifstream fi("permutari2.in");
ofstream fo("permutari2.out");
typedef struct lin{int A[305];} LIN;
int n,i,k,j,ind,Fact[305];
LIN Aux,Dp,C;
void inm(LIN &A, LIN &B, LIN &R)
{
int i,j;
for(i=0; i<=n; i++)
C.A[i]=0;
for(i=0; i<=n; i++)
for(j=0; j<=i; j++)
C.A[i]=(C.A[i]+A.A[j]*B.A[i-j])%MOD;
R=C;
}
void p(int b)
{
int i;
for(i=0; (1<<i)<=b; i++)
{
if((1<<i)&b)
inm(Dp,Aux,Dp);
inm(Aux,Aux,Aux);
}
}
int main()
{
fi>>n>>k;
Fact[0]=1;
for(i=1; i<=n; i++)
{
Fact[i]=(i*Fact[i-1])%MOD;
Aux.A[i]=Fact[i];
for(j=1; j<i; j++)
Aux.A[i]=(Aux.A[i]-(Aux.A[j]*Fact[i-j])%MOD+MOD)%MOD;
}
Dp.A[0]=1;
p(k);
fo<<Dp.A[n]<<"\n";
fi.close();
fo.close();
return 0;
}