Pagini recente » Cod sursa (job #2501660) | Cod sursa (job #2776395) | Cod sursa (job #1836166) | Cod sursa (job #2870178) | Cod sursa (job #467244)
Cod sursa(job #467244)
#include <cstdio>
#include <ctime>
#include <stdlib.h>
#define mod 9901
#define kpart 50
#define NMAX 1005
int n, m, k, a, cnt,i;
int res, dp[NMAX],j, A;
using namespace std;
int main ()
{
freopen ("pod.in", "r", stdin);
freopen ("pod.out", "w", stdout);
scanf ("%d%d%d\n", &n, &m, &k);
for (i = 1; i <= m; i++)
{
scanf ("%d", &A);
if (A == n)
{
printf ("0\n");
return 0;
}
}
int CNT = 1;
dp[0] = 1; int pas = 1, past = 0;
if (m == 0)
{
while (pas <= n)
{
//int aux = pas;
for (i = CNT; i <= kpart && pas <= n; i++)
{
++pas;
dp[i] = dp[i - 1];
if (pas - k >= 0 && k != 1)
dp[i] = (dp[i - 1] + dp[i - k]) % mod;
// printf ("%d ", dp[i]);
}
// printf ("%d\n", pas);
if (i <= kpart)
past = i - 1;
else past = kpart;
if (pas > n) break;
CNT = 0;
//printf ("%d\n", past);
for (i = kpart - k; i <= kpart; i++)
dp[CNT++] = dp[i];
}
printf ("%d\n", dp[past] % mod);
return 0;
}
srand (time (NULL));
int x = rand () % mod;
printf ("%d\n", x);
return 0;
}