Cod sursa(job #2068668)

Utilizator sebi110Ciobanu Sebastian sebi110 Data 18 noiembrie 2017 10:19:39
Problema Numerele lui Stirling Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream fin("stirling.in");
ofstream fout("stirling.out");
int dis1[210][210],dis2[210][210];
void calcdis1(int n,int m)
{
    if(dis1[n][m]!=0 || n==0 || m==0)
        return ;
    calcdis1(n-1,m-1);
    calcdis1(n-1,m);
    dis1[n][m]=dis1[n-1][m-1]-(n-1)*dis1[n-1][m];
}
void calcdis2(int n,int m)
{
    if(dis2[n][m]!=0 || n==0 || m==0)
        return ;
    calcdis2(n-1,m-1);
    calcdis2(n-1,m);
    dis2[n][m]=dis2[n-1][m-1]+dis2[n-1][m]*m;
}
int main()
{
    int t,i,x,n,m;
    fin>>t;
    dis1[1][1]=1;
    dis2[1][1]=1;
    for(i=1;i<=t;i++)
    {
        fin>>x>>n>>m;
        if(x==1)
        {
            calcdis1(n,m);
            fout<<dis1[n][m]<<'\n';
        }
        else
        {
            calcdis2(n,m);
            fout<<dis2[n][m]<<'\n';
        }
    }
    return 0;
}