Cod sursa(job #467064)

Utilizator Mishu91Andrei Misarca Mishu91 Data 28 iunie 2010 11:18:09
Problema Pod Scor 15
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.57 kb
#include <fstream>

using namespace std;

const int MAX_N = 1000005;
const int MOD = 9901;

ifstream fin ("pod.in");
ofstream fout ("pod.out");

int N, M, K, P[MAX_N];
char viz[MAX_N];

void citire() {
	fin >> N >> M >> K;

	for(int i = 1; i <= M; ++i) {
		int x;
		fin >> x;
		viz[x] = 1;
	}
}

void solve() {
	P[0] = 1;
	for(int i = 0; i < N; ++i) {
		if(!viz[i+1]) {
			P[i+1] += P[i];
			if(P[i+1] > MOD)
				P[i+1] -= MOD;
		}

		if(!viz[i+K] && i+K <= N) {
			P[i+K] += P[i];
			if(P[i+K] > MOD)
				P[i+K] -= MOD;
		}
	}

	fout << P[N];
}

int main() {
	citire();
	solve();
}