Cod sursa(job #2560241)
Utilizator | bety bety bety | Data | 27 februarie 2020 20:46:35 |
---|---|---|---|
Problema | 1-sir | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
#define inf 0x7fffffff
#define mod 194767
using namespace std;
ifstream cin("1-sir.in");
ofstream cout("1-sir.out");
const int maxx=33000;
int dp[maxx+5];
bool ok[maxx+5];
int main()
{
int n,s,lim;
cin>>n>>s;
lim=(n*(n-1))/2;
if(s<-lim or s>lim)
{
cout<<0;
return 0;
}
if((lim-s)%2)
{
cout<<0;
return 0;
}
int obj=(lim-s)/2;
ok[0]=true;
dp[0]=1;
for(int i=1;i<=n-1;++i)
for(int j=obj-i;j>=0;--j)
if(ok[j]==true)
dp[i+j]=(dp[i+j]+dp[j])%mod,ok[i+j]=true;
cout<<dp[obj];
return 0;
}