Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int EntreAB(int num, int x, int y);
- int main() {
- int arr[100][100], cury;
- int maxx = 0, maxy = 1;
- int i, i2;
- int scanx, scany;
- int startx, starty, endx, endy;
- int area, marea = 0, mstartx, mstarty, mendx, mendy;
- char output;
- while(!EntreAB(maxx, 1, 100000)) {
- printf("Introduza a quantidade de predios: ");
- scanf("%d", &maxx);
- }
- for(i = 0; i < maxx; i++) {
- printf("Introduza a altura para o predio N %d: ", i+1);
- scanf("%d", &cury);
- if(cury > maxy)
- maxy = cury;
- for(i2 = cury-1; i2 >= 0; i2--)
- arr[i][i2] = 1;
- }
- for(scany = 0; scany <= maxy; scany++) {
- for(scanx = 0; scanx <= maxx; scanx++) {
- startx = scanx;
- starty = scany;
- endx = startx;
- for(i = startx; i < maxx; i++)
- {
- if(arr[i][scany] == 1)
- endx++;
- else
- break;
- }
- endy = 0;
- area = (starty+1) * (endx - startx);
- if(area > marea) {
- marea = area;
- mstartx = startx;
- mstarty = starty;
- mendx = endx;
- mendy = endy;
- }
- }
- }
- for(i = mstarty; i > mendy; i--) {
- for(i2 = mstartx; i2 < mendx; i2++)
- arr[i2][i] = 2;
- }
- if(maxx < 10 && maxy < 10) {
- printf("\n\n\n\n");
- for(i = maxy-1; i >= 0; i--) {
- for(i2 = 0; i2 < maxx; i2++) {
- if(arr[i2][i] == 1)
- output = '%';
- if(arr[i2][i] == 2)
- output = '#';
- if(arr[i2][i] < 1)
- output = ' ';
- if(i2 == 0)
- printf("%d %c", i, output);
- else
- printf("%c", output);
- }
- printf("\n");
- }
- printf(" ");
- for(i = 0; i < maxx; i++)
- printf("%d", i);
- }
- printf("\n\nMaior area: %d\nA partir de X:%d Y:%d Ate X:%d Y:%d\n", marea, mstartx, mstarty, mendx-1, mendy);
- return 0;
- }
- int EntreAB(int num, int x, int y) {
- return (num >= x && num <= y);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement