Informatika gyűjtemény

Egy szinttel feljebb mb_mal.c

2004050607080910

NézetNyomtat

mb_mal.c (Vissza)
Az alábbi letöltési lehetőségek közül választhatsz: (segítség)
Karakterkódolás:
Sortörés:
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 770 byte
#include <stdio.h>

int m, n;
int e[100], s[100];
int cache[10000];

int minimum(int m)
{
    int i, f, min = -1, tomeg;

    if (!m)
        return 0;

    for (= 0; i < n; i++) {
        tomeg = m - s[i];

        if (tomeg < 0)
            continue;

        if (cache[tomeg] == -2)
            cache[tomeg] = minimum(tomeg);
        if (cache[tomeg] == -1)
            continue;

        f = e[i] + cache[tomeg];

        if (min == -1 || f < min)
            min = f;
    }

    return min;
}

int main(int argc, char **argv)
{
    int i;

    if (scanf("%d %d", &m, &n) != 2) {
        fprintf(stderr, "Nem koser a bemenet.\n");
        return 1;
    }

    for (= 0; i < n; i++)
        if (scanf("%d %d", &e[i], &s[i]) != 2) {
            fprintf(stderr, "Nem koser a bemenet.\n");
            return 1;
        }

    for (= 0; i < 10000; i++)
        cache[i] = -2;

    printf("%d\n", minimum(m));

    return 0;
}
(Vissza)