Cod sursa(job #1501236)
| Utilizator | Data | 13 octombrie 2015 09:07:30 | |
|---|---|---|---|
| Problema | 1-sir | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
fstream f,g;
long long S,N,v[2][514][65281],n,l,s,Sol;
int main()
{
//punct 0 32640 la s, la l 256
f.open("1-sir.in",ios_base::in);
g.open("1-sir.out",ios_base::out);
f>>N>>S;
int m;
v[0][256][32640]=1;
for(n=1,m=1;n<=N;n++,m=!m)for(l=-n;l<=n;l++)for(s=S-l*(N-n)-(N-n)*(N-n+1)/2;s<=S-l*(N-n)+(N-n)*(N-n+1)/2;s++)v[m][l+256][s+32640]=v[!m][l+256-1][s+32640-l]+v[!m][l+256+1][s+32640-l];
for(m=0;m<=513;m++)Sol+=v[N%2][m][S+32640];
g<<Sol;
}
