Cod sursa(job #7330)

Utilizator fireatmyselfBogdan-Alexandru Stoica fireatmyself Data 21 ianuarie 2007 13:27:27
Problema 1-sir Scor 0
Compilator c Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.94 kb
#include <stdio.h>
#define NMAX 260
#define MOD 194767

int A[2][NMAX][NMAX];
int N, S;
int s, d = 1;

int main()
{
        int i, j, k, sum;

        freopen("1-sir.in", "r", stdin);
        scanf("%d %d", &N, &S);

        A[s][0][0] = 1;

        for (i = 2; i <= N; i++)
        {
            for (j = 0; j < NMAX; j++)
                for (k = 0; k < NMAX; k++) A[d][j][k] = 0;
            for (j = 0; j < S; j++)    
                for (k = 0; k <= S-j+1; k++)
                if (k-j >= 0)
                {
                    A[d][j+1][k+j+1] = (A[d][j+1][k+j+1]+A[s][j][k])%MOD;
                    if (j > 0) A[d][j-1][k+j-1] = (A[d][j-1][k+j-1]+A[s][j][k])%MOD;
                }
            s = (s+1)&1; d = (d+1)&1;
        }

        sum = 0;
        for (i = 0; i <= N; i++) sum = (sum+A[s][i][S])%MOD;
        freopen("1-sir.out", "w", stdout);
        printf("%d\n", sum);

        return 0;
        
}