Cod sursa(job #30471)
Utilizator | Radu Gabriel mike4problems | Data | 13 martie 2007 23:47:28 |
---|---|---|---|
Problema | 1-sir | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
FILE *f;
#define In "1-sir.in"
#define Out "1-sir.out"
#define M (255*256/2)
long long sol[2][M];
int N,S,s,n,p,q,ts;
int abs(int x)
{
if(x>0) return x;
else return -x;
}
int main()
{
f=fopen(In,"r");
fscanf(f,"%d%d",&N,&S);
sol[1][0]=1; S=abs(S);
for(n=2;n<=N;n++)
{
p=n%2; q=!p;
ts=n*(n-1)/2;
for(s=0;s<=ts;s++)
sol[p][s]=sol[q][abs(s-(n-1))]+sol[q][s+(n-1)];
}
freopen(Out,"w",f);
fprintf(f,"%Ld\n",sol[p][S]);
fclose(f);
return 0;
}