Pagini recente » Cod sursa (job #1339111) | Cod sursa (job #2408442) | Cod sursa (job #1875297) | Cod sursa (job #411720) | Cod sursa (job #1141028)
#include <fstream>
#include <string.h>
#define modulo 30103
using namespace std;
ifstream f("diviz.in");
ofstream g("diviz.out");
char c;
int cif[202][10], i, j, n, a[202][101], b[202][101], k, nr[202], l, p, a1, b1, s;
int main()
{
f>>k>>a1>>b1;
while (f>>c)
nr[++n]=c-'0';
for (i=n-1; i>=0; i--) {
memcpy(cif[i], cif[i+1
], sizeof(cif[i+1]));
cif[i][nr[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<=b1; l++) {
memset(b, 0, sizeof(b));
//parcurg mat a
for(i=1; i<=n; i++)
for(j=0; j<=9; j++)
if(a[i][j]!=0)
//parcurgem linia i a lui cif
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])%modulo;
if(l>=a1)
for(i=0; i<=n; i++)
s=(s+b[i][0])%modulo;
memcpy(a, b, sizeof(b));
}
g<<s;
return 0;
}