Cod sursa(job #1739352)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 9 august 2016 12:10:11
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <algorithm>
#define MAX 65536
#define MOD 194767
#define MaxS 32640
#define INF 2000000000
using namespace std;
int pos=0,sign=0,v[MaxS*2],aux[MaxS*2+1],N,S;
char f[MAX];
int abs(int i)
{
	if(i<0)
		return -i;
	return i;
}
void r(int &nr)
{
    nr=0,sign=0;
    while(f[pos]<'0'||f[pos]>'9')
    {
        if(f[pos]=='-')sign=1;
        pos++;
        if(pos==MAX)fread(f,1,MAX,stdin),pos=0;
    }
    while(f[pos]>='0'&&f[pos]<='9')
    {
        nr=nr*10+f[pos++]-'0';
        if(pos==MAX)fread(f,1,MAX,stdin),pos=0;
    }
}
int main()
{
    freopen("1-sir.in","r",stdin);
    freopen("1-sir.out","w",stdout);
    //fread(f,1,MAX,stdin);
	scanf("%d%d",&N,&S);
	v[0]=1;
	for(int n=0;n<N-1;n++)
	{
		for(int i=0;i<=MaxS;i++)
		{
			aux[i]=0;
				aux[i]+=v[abs(i-n-1)];
			if(i+n-1<=MaxS)
				aux[i]=(aux[i]+v[i+n+1])%MOD;
		}
		for(int i=0;i<=MaxS;i++)
			v[i]=aux[i];
	}
	printf("%d",v[abs(S)]);
    return 0;
}