Cod sursa(job #544459)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 1 martie 2011 17:08:23
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>

int n,r,k,d[200][2][501],ii=0,j,i;

void adunare(int a[], int b[],int ij,int ji)
{
	int n1,kk=0;
	//printf("%d %d\n",a[0],b[0]);
	if(a[0]>b[0]){
		n1=a[0];
	}else{
		n1=b[0];
	}
	int i1;
	for(i1=1;i1<=n1;i1++){
		d[i1][ij][ji]=(a[i1]+b[i1]+kk)%10;
		kk=(a[i]+b[i]+kk)/10;
	}
	//printf("%d\n",n1);
	if(kk>0){
		n1++;
		d[n1][ij][ji]=1;
	}
	d[n1][ij][ji]=n1;
}
		

int main()
{
	freopen("expozitie.in","r",stdin);
	freopen("expozitie.out","w",stdout);
	scanf("%d%d%d",&n,&r,&k);
	n=n-r*k;
	for(i=1;i<=r;i++){
		d[1][1][i]=d[0][1][i]=1;
	}
	
	for(i=2;i<=n;i++){
		for(j=1;j<=r;j++){
			adunare(d[ii^1][j],d[ii][j-1],ii,j);
		}
		ii=ii^1;
	}
	for(i=d[0][n][r];i>=1;i--){
		printf("%d",d[i][n][r]);
	}
	return 0;
}