Cod sursa(job #466337)
#include <cstdio>
#define DN 100002
int grad[DN],n,S[1000][1000],s[1000][1000];
void precalculare_s()
{
s[1][1]= 1;
for( int i=2 ; i<100 ; ++i )//precalculam pana la limita maxima
for( int j=1 ; j<=i ; ++j )//pentru j>i s(i,j)=0 pentru ca ciclurile au cel putin un element
s[i][j]=s[i-1][j-1] - (i-1)*s[i-1][j] ;
}
void precalculare_S()
{
S[1][1]= 1;
for( int i=2 ; i<100 ; ++i )
for( int j=1 ; j<=i ; ++j )
S[i][j]= S[i-1][j-1] + j*S[i-1][j] ;
}
int main()
{
//freopen("colorare3.in","r",stdin);
freopen("permutari2.out","w",stdout);
/*int k,gm=0,x,y,i;
scanf("%d %d",&n,&k);
for(int i=1; i<n; i++) {
scanf("%d %d",&x,&y);
++grad[x];
if(grad[x]>gm) gm=grad[x];
++grad[y];
if(grad[y]>gm) gm=grad[y];
}
precalculare_s();
for(i=1; i<=k; i++) printf("%d ",s[n][i]);*/
printf("0\n");
return 0;
}