Cod sursa(job #654952)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 31 decembrie 2011 13:53:55
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>
#include<cstring>

#define maxn 257
#define maxs 32897
#define MOD 194767

FILE*f=fopen("1-sir.in","r");
FILE*g=fopen("1-sir.out","w");

int n,s,D1[maxs],D2[maxs],i,j;

inline int abs ( int j ){
	if ( j < 0 )
		return -j;
	return j;
}

int main () {
	
	fscanf(f,"%d %d",&n,&s); s = abs(s);
	int N = (n*(n-1)>>1);
	
	if ( s > N ){
		fprintf(g,"%d\n",0);
		return 0;
	}
	
	D1[0] = 1;
	for ( i = 2 ; i <= n ; ++i ){
		for ( j = 0 ; j <= N ; ++j ){
			D2[j] = D1[abs(j-i+1)] + D1[abs(j+i-1)];
			if ( D2[j] >= MOD ){
				D2[j] -= MOD;
			}
		}
		
		memcpy(D1,D2,sizeof(D2));
	}
	
	fprintf(g,"%d\n",D1[s]);
	
	fclose(f);
	fclose(g);
	
	return 0;
}