Cod sursa(job #1739350)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 9 august 2016 12:06:23
Problema 1-sir Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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];
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+MaxS]=1;
	for(int n=0;n<N-1;n++)
	{
		for(int i=0;i<=MaxS*2;i++)
		{
			aux[i]=0;
			if(i>=n+1)
				aux[i]+=v[i-n-1];
			if(i+n-1<=2*MaxS)
				aux[i]=(aux[i]+v[i+n+1])%MOD;
		}
		for(int i=0;i<=MaxS*2;i++)
			v[i]=aux[i];
	}
	printf("%d",v[S+MaxS]);
    return 0;
}