fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main(void)
  7. {
  8. int C;
  9. cin >> C;
  10.  
  11. while (C--)
  12. {
  13. int N;
  14. cin >> N; //펜스 갯수 입력
  15.  
  16. vector<int> fence;
  17. for (int i = 0; i < N; i++) //펜스 크기 입력
  18. {
  19. int temp;
  20. cin >> temp;
  21. fence.push_back(temp);
  22. }
  23.  
  24. int result = 0; //결과값
  25. for (int i = 0; i < N; i++) //모든 펜스 탐색
  26. {
  27. int right = 0, left = 0; //right: 오른쪽에 위치한 펜스의 크기가 크거나 같다면 증가
  28. //left: 왼쪽에 위치한 펜스의 크기가 크거나 같다면 증가
  29. for (int j = i + 1; j < N; j++) //오른쪽의 펜스 크기 탐색
  30. {
  31. if (fence[i] <= fence[j])
  32. right++;
  33. else
  34. break;
  35. }
  36. for (int j = i - 1; j >= 0; j--) //왼쪽의 펜스 크기 탐색
  37. {
  38. if (fence[i] <= fence[j])
  39. left++;
  40. else
  41. break;
  42. }
  43. int tempResult = fence[i] * (left + right + 1); //현재 펜스 기준 결과값 저장
  44. if (tempResult > result) //크기가 크다면 결과값으로 저장
  45. result = tempResult;
  46. }
  47. cout << result << endl;
  48. }
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5376KB
stdin
3
7
7 1 5 9 6 7 3
7
1 4 4 4 4 1 1
4
1 8 2 2
stdout
20
16
8