Cod sursa(job #2073136)
Utilizator | Data | 22 noiembrie 2017 19:00:39 | |
---|---|---|---|
Problema | 1-sir | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<fstream>
#include<cmath>
#define N 256
#define M 194767
using namespace std;
ifstream cin("1-sir.in");
ofstream cout("1-sir.out");
int dp[N*N+1];
int main(){
int n,s;
cin>>n>>s;
s=abs(s);
s=n*(n-1)/2-s;
if (s<0 ||(s&1)==1){
cout<<'0';
return 0;
}
s/=2;
dp[0]=1;
for(int i=1;i<n;i++)
for(int j=s;j>=i;j--){
dp[j]=dp[j]+dp[j-i]-M;
if (dp[j]<0) dp[j]+=M;
}
cout<<dp[s];
return 0;
}