Advertisement
C0BRA

Victors implementation

May 14th, 2012
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int EntreAB(int num, int x, int y);
  4.  
  5. int main() {
  6.     int arr[100][100], cury;
  7.     int maxx = 0, maxy = 1;
  8.     int i, i2;
  9.     int scanx, scany;
  10.     int startx, starty, endx, endy;
  11.     int area, marea = 0, mstartx, mstarty, mendx, mendy;
  12.     char output;
  13.  
  14.  
  15.     while(!EntreAB(maxx, 1, 100000)) {
  16.         printf("Introduza a quantidade de predios: ");
  17.         scanf("%d", &maxx);
  18.     }
  19.  
  20.     for(i = 0; i < maxx; i++) {
  21.         printf("Introduza a altura para o predio N %d: ", i+1);
  22.        
  23.         scanf("%d", &cury);
  24.         if(cury > maxy)
  25.             maxy = cury;
  26.        
  27.         for(i2 = cury-1; i2 >= 0; i2--)
  28.             arr[i][i2] = 1;
  29.     }
  30.        
  31.     for(scany = 0; scany <= maxy; scany++) {
  32.         for(scanx = 0; scanx <= maxx; scanx++) {
  33.             startx = scanx;
  34.             starty = scany;
  35.             endx = startx;
  36.            
  37.             for(i = startx; i < maxx; i++)
  38.             {
  39.                 if(arr[i][scany] == 1)
  40.                     endx++;
  41.                 else
  42.                     break;
  43.             }
  44.  
  45.             endy = 0;
  46.             area = (starty+1) * (endx - startx);
  47.  
  48.             if(area > marea) {
  49.                 marea = area;
  50.                 mstartx = startx;
  51.                 mstarty = starty;
  52.                 mendx = endx;
  53.                 mendy = endy;
  54.             }
  55.    
  56.         }
  57.        
  58.     }
  59.    
  60.     for(i = mstarty; i > mendy; i--) {
  61.         for(i2 = mstartx; i2 < mendx; i2++)
  62.             arr[i2][i] = 2;    
  63.     }
  64.  
  65.     if(maxx < 10 && maxy < 10) {
  66.         printf("\n\n\n\n");
  67.         for(i = maxy-1; i >= 0; i--) {
  68.             for(i2 = 0; i2 < maxx; i2++) {
  69.                 if(arr[i2][i] == 1)
  70.                     output = '%';  
  71.                 if(arr[i2][i] == 2)
  72.                     output = '#';
  73.                 if(arr[i2][i] < 1)
  74.                     output = ' ';
  75.            
  76.                 if(i2 == 0)
  77.                     printf("%d %c", i, output);
  78.                 else
  79.                     printf("%c", output);
  80.             }
  81.             printf("\n");
  82.         }
  83.    
  84.         printf("  ");
  85.         for(i = 0; i < maxx; i++)
  86.             printf("%d", i);
  87.     }
  88.     printf("\n\nMaior area: %d\nA partir de X:%d Y:%d Ate X:%d Y:%d\n", marea, mstartx, mstarty, mendx-1, mendy);
  89.     return 0;
  90. }
  91.  
  92. int EntreAB(int num, int x, int y) {
  93.     return (num >= x && num <= y);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement