Cod sursa(job #42922)

Utilizator fireatmyselfBogdan-Alexandru Stoica fireatmyself Data 29 martie 2007 17:08:50
Problema Cowfood Scor 22
Compilator c Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#define MOD 3210121

int E[40][40], N, S, K, V[40], Sol;

int q(){
    int i, j, num, num0;

    for (i = 1; i <= N; i++) { num = num0 = 0;
        for (j = 1; j <= K; j++){
            if (V[j] >= E[i][j]) num++;
               num0 += (V[j]>0); }
        if (num == K || num0 < 2) return 0; }
    return 1;
}

void back(int nv, int sum)
{
        int i;

        if (nv == K+1)
        {
                Sol = (Sol+q())%MOD;
                return;
        }

        for (i = 0; i <= S; i++) {
            if (sum+i > S) return;
            V[nv] = i; back(nv+1, sum+i); }
}

int main()
{
        int i, j;

        freopen("cowfood.in", "r", stdin);
        scanf("%d %d %d", &K, &S, &N);

        for (i = 1; i <= N; i++)
            for (j = 1; j <= K; j++) scanf("%d", E[i]+j);

        back(1,0);
        
        freopen("cowfood.out", "w", stdout);
        printf("%d\n", Sol);

        return 0;
        
}