Cod sursa(job #553921)

Utilizator DevilShadowJunc Raul Cosmin DevilShadow Data 14 martie 2011 13:43:01
Problema Pod Scor 0
Compilator cpp Status done
Runda steleinf2010seniori Marime 0.72 kb
#include <iostream.h>
#include <fstream.h>

int n, m, k, i, v[1000], s = 0, j, h;

bool ok;

int back(int i)
{
	for(j = i; j < n; j ++)
	{
		ok = true;
		if(i + 1 <= n)
			for(h = 0; h < m; h ++)
				if(v[h] == i + 1)
					ok = false;
				else
					if(v[h] > i + 1)
						break;
		if(ok)
			back(i + 1);
		
		ok = true;
		if(i + k <= n)
			for(h = 0; h < m; h ++)
				if(v[h] == i + k)
					ok = false;
				else
					if(v[h] > i + k)
						break;
		if(ok)
			back(i + k);
	}
	if(j == n)
		s ++;
	return 0;
}

int main ()
{
	ifstream f ("pod.in");
	ofstream g ("pod.out");
	
	f >> n >> m >> k;
	
	for (i = 0; i < m; i ++)
		f >> v[i];
	
	back(0);
	
	g << s;
	
	f.close ();
	g.close ();
}