Cod sursa(job #2596742)

Utilizator alexradu04Radu Alexandru alexradu04 Data 10 aprilie 2020 12:15:49
Problema Invers Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
const int nmax=1005;
const int mod=666013;
int d1[2][nmax],d2[2][nmax];
int n,b,x,i,j,put,use,m,dp;
int main()
{
    ifstream f("nr.in");
    ofstream g("nr.out");
    f>>n>>b;put=1;use=1;
    for(i=1;i<=b;i++)
        d1[use][i]=(d1[use][i-1]+(i-1))%mod;
    for(i=b;i>=1;i--)
        d2[use][i]=(d2[use][i+1]+1)%mod;
    for(i=2;i<=n;i++)
    {
        use=1-use;
        for(j=2;j<=b;j++)
        {
            dp=(d1[1-use][j]+d2[1-use][j+1]*(j-1))%mod;
            d1[use][j]=(d1[use][j-1]+dp*(j-1))%mod;
            d2[use][j]=dp;
            if(d2[use][j]>=mod)
                d2[use][j]-=mod;
        }
        for(j=b;j>=2;j--)
        {
            d2[use][j]=(d2[use][j]+d2[use][j+1]);
            if(d2[use][j]>=mod)
                d2[use][j]-=mod;
        }
    }
    g<<d2[use][2];
    return 0;
}