Cod sursa(job #3217643)

Utilizator AndreibatmanAndrei Croitoriu Andreibatman Data 24 martie 2024 10:48:35
Problema Diviz Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define MOD 30103
using namespace std;
ifstream fin("diviz.in");
ofstream fout("diviz.out");
int k,a,b,i,ans,rest,j,l;
char sir[210];
int dp[205][105];
int main()
{
    fin>>k>>a>>b;
    fin>>sir;
    l=strlen(sir);
    //dp[0][0]=1;
    for(i=l-1;i>=0;i--)
    {
        for(rest=0;rest<k;rest++)
            if((rest+(sir[i]-'0')*10)%k==0 && sir[i]!='0')
                for(j=a-1;j<=b-1;j++)
                    ans=(ans+dp[j][rest])%MOD;
        for(rest=k-1;rest>=0;rest--)
            for(j=b-1;j>=0;j--)
                if(dp[j][rest]!=0)
                    dp[j+1][(rest+(sir[i]-'0')*10)%k]=(dp[j+1][(rest+(sir[i]-'0')*10)%k]+dp[j][rest])%MOD;
        dp[1][(sir[i]-'0')%k]++;
    }
    fout<<ans;
    return 0;
}