Cod sursa(job #483625)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 9 septembrie 2010 14:17:49
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#define Nmax 258
#define Smax 65540
#define Mod 194767

int a[2][Smax];
int N,S;

int main(){
	int i,j,st=0;
	freopen("1-sir.in","r",stdin);
	freopen("1-sir.out","w",stdout);
	scanf("%d%d",&N,&S);
	if(S<0) S=-S;
	if( S>N*(N-1) ) ;
	else{
		a[0][0]=1;
		for(i=2;i<=N;++i){
			for(j=0;j<=i*(i-1);++j){
				if(j+i-1<=i*(i-1)) a[st^1][j]=a[st][j+i-1];
				else a[st^1][j]=0;
				if(j-i+1>=0) a[st^1][j]=(a[st^1][j]+a[st][j-i+1]) % Mod;
				else a[st^1][j]=(a[st^1][j]+a[st][-(j-i+1)]) % Mod;
			}
			st^=1;
		}
	}
	
	printf("%d\n",a[st][S]);
	fclose(stdin); fclose(stdout);
	return 0;
}