Cod sursa(job #1847294)

Utilizator zdavid112zIon David-Gabriel zdavid112z Data 14 ianuarie 2017 14:55:46
Problema Cowfood Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <cstdio>
#include <climits>
#include <algorithm>
#define BIT(x) (1<<(x))

using namespace std;
typedef long long llong;

int mat[21][31];

int main()
{
    freopen("cowfood.in", "r", stdin);
    freopen("cowfood.out", "w", stdout);
    llong rc, rez = 0;
    int s, n, k, i, j, p, v[31], nb;
    scanf("%d%d%d", &k, &s, &n);
    s--;
    for(i = 0; i < n; i++)
        for(j = 0; j < k; j++)
            scanf("%d", &mat[i][j]);
    for(i = 1; i < BIT(n); i++)
    {
        nb = 0;
        rc = 0;
        for(p = 0; p < k; p++)
            v[p] = 0;
        for(j = 0; j < n; j++)
        {
            if(i & BIT(j))
            {
                nb++;
                for(p = 0; p < k; p++)
                {
                    v[p] = max(v[p], mat[i][p]);
                }
            }
        }
        for(p = 0; p < k; p++)
            rc += s - v[p];
        if(nb & 1) rez += rc;
        else rez -= rc;
    }
    printf("%lld", rez);
    return 0;
}