Cod sursa(job #1873069)

Utilizator DiClauDan Claudiu DiClau Data 8 februarie 2017 19:28:35
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<stdio.h>
using namespace std;
const int N = 260, S = 34000, R = 194767;
int a[S], b[S];
void schimba (int n)
{
    int i;
    for (i = 0; i <= n; i++)
        a[i] = b[i];
}
int abs (int x)
{
    if (x < 0)
        return -x;
    return x;
}
int main ()
{
    FILE *in, *out;
    in = fopen ("1-sir.in", "r");
    out = fopen ("1-sir.out", "w");
    int n, sCerut, i;
    fscanf (in, "%d%d", &n, &sCerut);
    int sMax = n * (n - 1) / 2, lim;
    a[0] = 1;
    int j;
    for (i = 1; i < n; i++)
    {
        lim = i * (i + 1) / 2;
        for (j = 0; j <= lim; j++)
        {
            if (j - i >= 0)
                b[j] = a[j - i];
            else
                b[j] = a[i - j];
            if (j + i <= sMax)
            {
                b[j] += a[j + i];
                b[j] %= R;
            }
        }
        schimba (sMax);
    }
    fprintf (out, "%d", a[abs(sCerut)]);
    return 0;
}