Cod sursa(job #526889)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 29 ianuarie 2011 18:44:48
Problema Numerele lui Stirling Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.42 kb
#include<iostream.h>
#include<fstream.h>
#define N 201
int t,n,m,k,i,j,l,s[N][N],S[N][N];
long fact(int n)
{if(n==0)
     return 1;
return (n*fact(n-1))%98999;}

int main()
{ifstream f1("stirling.in");
ofstream f2("stirling.out");
f1>>t;
for(l=1;l<=t;l++)
      {f1>>k>>n>>m;
      if(k==1)
              {for(i=1;i<=n;i++)
                    {for(j=1;j<=m;j++)
                    if(i==j)
                          s[i][j]=1;
                    else
                          if(i<j)
                               s[i][j]=0;
                          else
                               if(j==1&&i>1)
                                    if(i%2==0)
                                         s[i][j]=(-1)*fact(i-1);
                                    else
                                         s[i][j]=fact(i-1);
                               else
                                    s[i][j]=(s[i-1][j-1]-(i-1)*s[i-1][j])%98999;}
              f2<<s[n][m]<<endl;}
      else
              {for(i=1;i<=n;i++)
                    {for(j=1;j<=m;j++)
                    if(i==j||(i>1&&j==1))
                          S[i][j]=1;
                    else
                          if(i<j)
                               S[i][j]=0;
                          else
                               S[i][j]=(S[i-1][j-1]+j*S[i-1][j])%98999;}
              f2<<S[n][m]<<endl;}}
f1.close();
f2.close();
return 0;}