Cod sursa(job #45981)

Utilizator sealTudose Vlad seal Data 2 aprilie 2007 10:45:37
Problema 1-sir Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define Nm 256
#define Sm Nm*(Nm-1)>>1
#define Mod 194767
int a[2][Sm+1],n,s;

int main(void)
{ int i,j,c,p;
  freopen("1-sir.in","r",stdin);
  freopen("1-sir.out","w",stdout);
  scanf("%d%d",&n,&s);
  if(s>n*(n-1)>>1||s<-n*(n-1)>>1)
  { printf("0\n");
    return 0; }
  a[0][0]=1;
  for(c=1,p=0,i=1;i<n;i++,c=1-c,p=1-p)
    for(j=0;j<=i*(i+1)>>1;j++)
    { if(i+j<=i*(i-1)>>1) a[c][j]=a[p][i+j];
      else a[c][j]=0;
      if(i>j) a[c][j]+=a[p][i-j];
      else a[c][j]+=a[p][j-i];
      a[c][j]%=Mod; }
  if(s<0) s=-s;
  printf("%d\n",a[p][s]);
  return 0; }