Informatika gyűjtemény

Egy szinttel feljebb mb_szul.c

2004050607080910

NézetNyomtat

mb_szul.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: 904 byte
#include <stdio.h>

int tomb[1000000];
int n;

int beolvas(void)
{
    int i;

    if (scanf("%d", &n) != 1) {
        fprintf(stderr, "hibas bemenet\n");
        return 0;
    }

    for (= 0; i < n; i++)
        if (scanf("%d", &tomb[i]) != 1) {
            fprintf(stderr, "hibas bemenet\n");
            return 0;
        }

    return 1;
}

int abs(int n)
{
    return (>= 0) ? n : -n;
}

int kaosz(int start)
{
    int max = 0, i, t;

    for (= 0; i < n; i++) {
        t = abs(tomb[i] - i + start) % n;
        if (> n / 2)
            t = n - t;

        if (max < t)
            max = t;
    }

    return max;
}

int main(void)
{
    int min = -1, m, i;

    if (!beolvas())
        return 1;

    for (= 0; i < n; i++) {
        m = kaosz(i);
        if (min == -1 || min > m)
            min = m;
    }

    for (= 0; i < n / 2; i++) {
        m = tomb[i];
        tomb[i] = tomb[- i - 1];
        tomb[- i - 1] = m;
    }

    for (= 0; i < n; i++) {
        m = kaosz(i);
        if (min == -1 || min > m)
            min = m;
    }

    printf("%d\n", min);

    return 0;
}
(Vissza)