#include <stdio.h> #pragma warning(disable:4996) long long int n, arr[100005]; long long int max; long long int minValue(); int main() { FILE* fin = fopen("input.txt", "rt"); FILE* fout = fopen("output.txt", "wt"); fscanf(fin,"%d", &n); //scanf("%d", &n); for (int i = 1; i <= n; i++) { fscanf(fin, "%d", &arr[i]); //scanf("%d", &arr[i]); } // 세로 높이 for (int i = 1; i <= n; i++) { long long int tmph = arr[i]; for (int j = 1; j <= n - i +1; j++) { // 넓이 비교 if ((tmph * j) > max) { max = tmph * j; } // 낮은 높이를 선택 if (tmph > arr[i + j]) tmph = arr[i + j]; } if (i == n) { max = ((n*minValue()) > max) ? n*minValue() : max; } } //printf("%d\n", max); fprintf(fout, "%lld\n", max); } long long int minValue() { int minmin = arr[0]; for (int i = 0; i < n; i++) minmin = (minmin < arr[i]) ? minmin : arr[i]; return minmin; } |