Informatika gyűjtemény

Egy szinttel feljebb mb_elfogo.c

2004050607080910

NézetNyomtat

mb_elfogo.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: 938 byte
#include <stdio.h>

char k[200];
size_t kk;
char u[200][200];
size_t uu;

void nullaz()
{
    size_t i, j;

    for (= 0; i < 200; i++) {
        for (= 0; j < 200; j++)
            u[i][j] = 0;

        k[i] = 0;
    }
}

int beolvas()
{
    size_t i, a, b;

    if (scanf("%u %u", &kk, &uu) != 2) {
        fprintf(stderr, "Hibas bemenet\n");
        return 0;
    }

    for (= 0; i < uu; i++) {
        if (scanf("%u %u", &a, &b) != 2) {
            fprintf(stderr, "Hibas bemenet\n");
            return 0;
        }

        a--;
        b--;

        u[a][b] = 1;
        u[b][a] = 1;
    }

    return 1;
}

void bejar(size_t p)
{
    size_t i;

    printf("%u ", p + 1);
    k[p] = 1;

    for (= 0; i < kk; i++) {
        /* ha mar egyiranyu az utca, akkor tovabb megy */
        if (u[p][i] == 0 || u[i][p] == 0 || i == p)
            continue;

        if (k[i] == 0) {
            u[i][p] = 0;
            bejar(i);
            printf("%u ", p + 1);
        }
    }

    k[p] = 0;
}

int main()
{
    nullaz();

    if (!beolvas())
        return 1;

    printf("%u\n", 2 * uu + 1);
    bejar(0);
    printf("\n");

    return 0;
}
(Vissza)