All pastes #365053 Raw Edit

Untitled

public c v1 · immutable
#365053 ·published 2007-02-20 16:55 UTC
rendered paste body
#include <stdio.h>#define DEBUG 0int maxgrupo(int grupo[], int size){    int i, num, tmp, var;    int max = 0;    for (i = 0; i < size; i++)    {        var = grupo[i];        if(var == 0) continue;        if(DEBUG) printf("\npara o numero %d: \n", var);        for (tmp = 0, num = i+1; grupo[num] >= var; num++)        {            if (grupo[num] == 0)            {                break;            }            else            {                if(DEBUG) printf("  -->  %d\n", grupo[num]);                tmp++;            }        }        int temmp = tmp;        if(DEBUG) printf("detectados %d numeros seguintes maiores\n", temmp);        for (num = i-1; var <= grupo[num]; num--)        {            if (grupo[num] == 0)            {                break;            }            else            {                if(DEBUG) printf("  <--  %d\n", grupo[num]);                tmp++;            }        }        if(DEBUG) printf("detectados %d numeros anteriores maiores\n", tmp-temmp);        int tempo = var*(tmp+1);        if(DEBUG) printf("area tempo: %d\n", tempo);        if (tempo > max )        {            max = tempo;        }    }    return max;}int main(void){    int limit, grupos = 0;    scanf("%d\n", &limit);    int predios[limit];    int i, temp, num = 0;    for(i = 0; i < limit; i++)    {        scanf("%d\n", &temp);        predios[num++] = temp;    }    /*grupos++;*/     /*obrigatoriamente tem um ultimo grupo no fim*/    if(!DEBUG) printf("%d\n", maxgrupo(predios, num));    if(DEBUG)    {        printf("\nproblema D - fase de treino ONI 2007:\n\n");        printf("grupos de predios: %d\n", grupos);        printf("numero de predios: %d\n", limit);        printf("predios no array: %d\n", num);        printf("altura dos predios: ");        int i;        for(i = 0; i < num; i++)        {            printf("%d ", predios[i]);        }putchar('\n');        /*int teste[14] = {2, 1, 3, 0, 1, 2, 3, 0, 1, 2, 5, 4, 2, 6};        printf("\narea maxima: %d\n", maxgrupo(teste, 14));*/        printf("%d\n", maxgrupo(predios, num));    }    return 0;}