Pagini recente » Profil Irina.coman | Cod sursa (job #2623746) | Cod sursa (job #658868) | Cod sursa (job #1061854) | Cod sursa (job #7050)
Cod sursa(job #7050)
#include <cstdio>
#include <iostream>
#define DIM 17000
#define MAX 257
using namespace std;
int n, s;
int par;
int a[DIM];
int p[DIM];
int lastline[DIM];
int k;
int lung;
void Read();
void Solve();
void Write();
int main()
{
Read();
Solve();
Write();
return 0;
}
void Read()
{
FILE *fin = fopen("1-sir.in", "r");
fscanf(fin, "%d%d", &n, &s);
if (n % 4 == 0 || (n-1) % 4 == 0) par = 1;
fclose(fin);
}
void Solve()
{
int aux = 2, no = 1;
int saux[MAX];
a[++k] = 1;
lastline[1] = lastline[2] = 1;
lung = n*(n-1)/4 - n/4 + 1;
for (int i = 1; i <= lung; i++)
{
for (int j = 1; j <= aux; j++)
a[++k] = lastline[j];
no++;
if (no == 2)
{
saux[0] = 0;
for (int j = 1; j <= aux; j++)
{
saux[j] = lastline[j];
lastline[j] = saux[j-1] + saux[j];
lastline[j] %= 194767;
}
no = 0;
lastline[++aux] = 1;
}
k--;
}
for (int i = lung; i > 0; i--)
p[lung-i+1] = a[i];
}
void Write()
{
FILE *fout = fopen("1-sir.out", "w");
if (s < n/2)
fprintf(fout, "0\n");
if (par && s % 2)
fprintf(fout, "0\n");
else if (!par && !(s % 2))
fprintf(fout, "0\n");
else if (!par)
fprintf(fout, "%d\n", p[s/2]);
else
fprintf(fout, "%d\n", p[s/2]);
/* for (int i = 1; i <= lung; i++)
fprintf(fout, "%d ", p[i]);*/
// cout << par; cin.get();
fclose(fout);
}