Cod sursa(job #467224)

Utilizator loginLogin Iustin Anca login Data 28 iunie 2010 13:10:24
Problema Pod Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.61 kb
# include <fstream>
# include <algorithm>
# define P 9901
using namespace std;
int n, m, k, v[30], a[1003];

void read ()
{
	ifstream fin ("pod.in");
	fin>>n>>m>>k;
	for(int i=1;i<=m;++i)
		fin>>a[i];
}

void solve ()
{
	sort(a+1, a+m+1);
	int nm=1;
	if(a[nm]==1)++nm;
	else v[1]=1;
	for(int i=2;i<k;++i)
		if (a[nm]!=i) v[i]=1+v[i-1];
		else ++nm;
	if (a[nm]!=k)v[0]=1+v[k-1];
	else ++nm;
	for (int i=k+1;i<=n;++i)
	{
		int p=i%k;
		if (i!=a[nm])
		{
			v[p]=v[(i-1)%k]+v[p];
			if (v[p]>=P)v[p]-=P;
		}
		else
			v[i%k]=0, ++nm;
	}
	ofstream fout ("pod.out");
	fout<<v[n%k];
}


int main ()
{
	read ();
	solve ();
	return 0;
}