Cod sursa(job #467071)

Utilizator savimSerban Andrei Stan savim Data 28 iunie 2010 11:19:47
Problema Pod Scor 15
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.53 kb
#include <stdio.h>

#define MAX_N 1000030
#define prim 9901

int ok[MAX_N], c[MAX_N];
int n, m, k;

int main() {

	freopen("pod.in", "r", stdin);
	freopen("pod.out", "w", stdout);

	scanf("%d %d %d", &n, &m, &k);
	for (int i = 1; i < MAX_N; i++)
		ok[i] = 1;

	for (int i = 1; i <= m; i++) {
    	int p;
		scanf("%d", &p);
		ok[p] = 0;
	}

	c[0] = 1;
	for (int i = 0; i < n; i++) {
		if (ok[i + 1])
			c[i + 1] = (c[i + 1] + c[i]) % prim;
    	if (ok[i + k])
			c[i + k] = (c[i + k] + c[i]) % prim;
	}

	printf("%d\n", c[n]);


	return 0;
}