Pagini recente » Cod sursa (job #977997) | alex001 | Cod sursa (job #2182852) | Cod sursa (job #1881870) | Cod sursa (job #406716)
Cod sursa(job #406716)
#include <iostream>
#include <fstream>
using namespace std;
#define MOD 194767
#define pr 32640 //255*256/2
int N;
long long S;
int Pos[2][2*pr];
int abs(int k) {
if(k>=0) return k;
else return -k;
}
int main() {
FILE *f1=fopen("1-sir.in", "r"), *f2=fopen("1-sir.out", "w");
int i, j, p, q;
fscanf(f1, "%d", &N); fscanf(f1, "%lld", &S);
if(abs(S)>(N-1)*N/2) { fprintf(f2, "0\n"); }
else {
Pos[0][0]=1;
for(i=2; i<=N; i++) {
for(j=0; j<=pr; j++) {
//cite siruri de lungime i cu suma j exista ?
Pos[1][j] = (Pos[0][abs(j-i+1)] + Pos[0][abs(j+i-1)]) % MOD;
}
for(j=0; j<=pr; j++) {
Pos[0][j]=Pos[1][j]; Pos[1][j]=0;
}
}
fprintf(f2, "%d\n", Pos[0][abs(S)]);
}
fclose(f1); fclose(f2);
return 0;
}