Pagini recente » Cod sursa (job #918702) | Cod sursa (job #2733141) | Cod sursa (job #2523117) | Cod sursa (job #2828931) | Cod sursa (job #1140991)
#include<fstream>
#include<cstring>
using namespace std;
# define MOD 30103
int k, A, B, x, s[203], i, j, l, p, n, cif[203][10], a[203][10], b[203][10], sol;
ifstream in("diviz.in");
ofstream out("diviz.out");
int main(){
in>>k>>A>>B;
while(in>>x){
s[++n]=x;
}
for(i=n-1; i>=0; i--){
memcpy(cif[i], cif[i+1], sizeof(cif[i+1]));
cif[i][s[i]+1]=i+1;
}
for(i=1;i<=9;i++)
if(cif[0][i]!=0)
a[cif[0][i]][i%k]++;
for(l=2;l<=B;l++){
memset(b,0,sizeof(b));
for(i=1;i<=n;i++)
for(j=0;j<=9;j++)
if(a[i][j]!=0)
{
for(p=0;p<=9;p++)
if(cif[i][p]!=0)
b[cif[i][p]][(j+p)%k]=(b[cif[i][p]][(j+p)%k]+a[i][j])%MOD;
}
if(l>=A)
//adunam ce avem pe coloana 0 in b
for(j=0;j<=n;j++)
sol=(sol+b[j][0])%MOD;
memcpy(a,b,sizeof(b));
}
out<<sol;
return 0;
}