Cod sursa(job #704148)

Utilizator DanFodorFODOR Dan Horatiu DanFodor Data 2 martie 2012 16:34:24
Problema Pascal Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <time.h>

using namespace std;

int v1[5000069],v2[5000069];

int main()
{
	ifstream in("pascal.in");
	ofstream out("pascal.out");
	int D,R;
	in>>R>>D;
	int i,j,nr=0;
	if (R<=1)
		out<<-1;
	else
	{
		v1[1]=1;
		v2[1]=1;
		v2[2]=1;
		i=1;
		while (i<=R)
		{
			i++;
			if (i%2==0)
			{
				for (j=1;j<=i+1;j++)
					v1[j]=(v2[j]+v2[j-1])%D;
			}
			else
			{
				for (j=1;j<=i+1;j++)
					v2[j]=v1[j]+v1[j-1]%D;
			}
		}
		if (R%2==0)
			for (i=1;i<=R;i++)
				if (v2[i]%D==0)
					nr++;
		else
			for (i=1;i<=R;i++)
				if (v1[i]%D==0)
					nr++;
		out<<nr;
	}

	return 0;
}