Cod sursa(job #1607193)

Utilizator test72101S.A.C. test72101 Data 20 februarie 2016 21:37:29
Problema Pascal Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <stdio.h>

int numar2(int linie,int i,int div)
{	int plus=0;
	long numar=1;
	int j;
	int sol=0;
		if (i!=0){
			plus=(linie-i+1)%div;
			if (plus!=0) plus=div-plus;
			for(j=linie-i+1+plus;j<=linie;j=j+div) numar=numar*j;
			
			for(j=div;j<=i;j=j+div) numar=numar/j;
		}
			if (numar%div==0 && numar !=0) sol++;		
	return sol;
}
int main(){
	int linie,numar,rez,i;
	FILE *f=fopen("pascal.in","r");
	FILE *g=fopen("pascal.out","w");
	fscanf(f,"%d %d",&linie,&numar);
	
	switch(numar)
		{
	case 2:
		for(i=0;i<((linie+1)/2);i++) rez+=2*numar2(linie,i,2);
		if (linie%2==0) rez+=numar2(linie,linie/2,2);
		break;
	case 3:
		for(i=0;i<((linie+1)/2);i++) rez+=2*numar2(linie,i,3);
		if (linie%2==0) rez+=numar2(linie,linie/2,3);
		break;
	case 4:
		for(i=0;i<((linie+1)/2);i++) rez+=2*numar2(linie,i,2);
		if (linie%2==0) rez+=numar2(linie,linie/2,2);
		break;
	case 5:
		for(i=0;i<((linie+1)/2);i++) rez+=2*numar2(linie,i,5);
		if (linie%2==0) rez+=numar2(linie,linie/2,5);
		break;	
	}
	fprintf(g,"%d",rez);
}