Cod sursa(job #467215)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 28 iunie 2010 13:03:02
Problema Pod Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.67 kb
#include <iostream>
#include <fstream>
#define MOD 9901

using namespace std;

const char iname[] = "pod.in";
const char oname[] = "pod.out";
const int nmax = 1000005;

ifstream fin(iname);
ofstream fout(oname);

int N, K, M, j, F[nmax], Sc[nmax + 6], i, x;

int main()
{
	fin >> N >> M >> K;
	for(i = 1; i <= M; i ++)
	{
		fin >> x;
		Sc[x] = 1;
	}
	
	if(!Sc[1])
	{
		F[1] = 1;
		if(Sc[K] == 0)
			F[K] = 1;
		for(i = 2; i <= N + 1; i ++)
			if(Sc[i] == 0)
				F[i] = (F[i - 1] + F[i - K]) % MOD;
	}
	else
	{
		F[K] = 1;
		for(i = K + 1; i <= N; i ++)
			if(Sc[i] == 0)
				F[i] = (F[i - 1] + F[i - K]) % MOD;
	}
	fout << F[N + 1];
	return 0;
}