Cod sursa(job #1960432)
Utilizator | Data | 10 aprilie 2017 13:47:48 | |
---|---|---|---|
Problema | 1-sir | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("1-sir.in");
ofstream fout("1-sir.out");
int dp[80005],dp2[80005],Max,n,s,sum;
const int mod=194767;
int main()
{
fin>>n>>s;
if(s>40000 || s<-40000)
{
fout<<0;
return 0;
}
Max=80000;
dp2[40000]=1;
for(int q=2;q<=n;q++)
{
for(int i=0;i<=Max;i++)
{
if(i-q+1>=0)
dp[i]=(dp[i]+dp2[i-q+1])%mod;
if(i+q-1<=Max)
dp[i]=(dp[i]+dp2[i+q-1])%mod;
}
for(int i=0;i<=Max;i++)
{
dp2[i]=dp[i];
dp[i]=0;
}
}
fout<<dp2[s+40000];
return 0;
}