Cod sursa(job #3217107)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 21 martie 2024 01:39:46
Problema Diviz Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
ifstream fin ("diviz.in");
ofstream fout("diviz.out");
int D[202][101];
int n,z,k,sol,l,a,b,j,i,V[202],viz[202][102][10];
const int MOD=30103;
string s;
int main()
{
    fin>>k>>a>>b;
    fin>>s;
    for(i=0;i<s.size();i++)
        V[i+1]=s[i]-'0';
    D[0][0]=1;
    n=s.size();
    for(i=1;i<=n;i++)
    {
        for(l=i-1;l>=0;l--)
            for(j=k-1;j>=0;j--)
            {
                if(l==0&&j==0&&V[i]==0)
                    continue;
                //if(D[l][j]&&l==2)
                    //fout<<j<<" "<<D[l][j]<<" "<<viz[l][j][V[i]]<<"\n";
                if(D[l][j])
                {
                    D[l+1][(j*10+V[i])%k]=(D[l+1][(j*10+V[i])%k]+D[l][j]-viz[l][j][V[i]])%MOD;
                    viz[l][j][V[i]]++;
                }
            }
        //fout<<D[3][0]<<"\n";
    }

    sol=0;
    for(i=a;i<=b;i++)
    {
        //fout<<D[i][0]<<"\n";
        sol=(sol+D[i][0])%MOD;
    }
    fout<<sol;
    return 0;
}