0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 35
1

Ускорение

30.07.2019, 15:24. Показов 433. Ответов 2
Метки нет (Все метки)

Здраствуйте, есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
 
#define MAX 1000010
 
 
 
long long h[MAX];
 
int i, n, left, right;
 
long long area, res;
 
 
 
int main(void)
 
{
 
  scanf("%d",&n);
 
  for(i = 1; i <= n; i++)
 
    scanf("%d",&h[i]);
 
 
 
  res = 0;
 
  for(i = 1; i <= n; i++)
 
  {
 
    left = right = i;
 
    while(left > 1 && h[left-1] >= h[i]) left--;
 
    while(right < n && h[right+1] >= h[i]) right++;
 
    area = (right - left + 1) * h[i];
 
    if (area > res) res = area;
 
  }
 
  printf("%lld\n",res);
 
  return 0;
 
}
его надо ускорить
принцип работы таков

В первой строке входного файла записано число N (0 < N ≤ 106) - количество прямоугольников гистограммы. Затем следует N целых чисел h1hn, где 0 ≤ hi ≤ 109. Эти числа обозначают высоты прямоугольников гистограммы слева направо. Ширина каждого прямоугольника равна 1
Выведите площадь самого большого прямоугольника в гистограмме. Помните, что этот прямоугольник должен быть на общей базовой линии.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2019, 15:24
Ответы с готовыми решениями:

Ускорение кода
Ребят помогите ускорить код. Создаётся вектор на 100000001. Далее приходит n пар - начало и конец....

Ускорение алгоритма
Привет, всем! Помогите, пожалуйста, ускорить работу алгоритма. При вводе примерно вот таких чисел:...

Ускорение програмы на с++
Здраствуйте!Нужно ускорить программу по возможности. #include &lt;iostream&gt; #include &lt;vector&gt;...

Ускорение ввода
#include &lt;bits/stdc++.h&gt; #define ll long long using namespace std; bool ar; int main() { ...

2
1738 / 924 / 384
Регистрация: 11.10.2018
Сообщений: 4,830
30.07.2019, 18:18 2
Ваша программа читает не из файла, а с консоли.
Для чтения из файла - те же функции(scanf, printf), только с приставкой f.
0
Продавец времени
5795 / 3201 / 735
Регистрация: 12.03.2015
Сообщений: 15,176
30.07.2019, 23:56 3
Не надо так делать.

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
// 10^9 влезает в 32 бита с небольшим запасом
// 1000000000 = *0x3B9ACA00‬.
unsigned get_max(unsigned* h, unsigned N)
{
  unsigned max = 0;
  while (N--) if (max < h[N]) max = h[N];
  return max;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2019, 23:56

Ускорение алгоритмов
Имеется код, нужно его ускорить. (Помогите тупому!!!!!!!) #include &lt;stdio.h&gt; #include &lt;iostream&gt;...

Ускорение програмки
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; struct Tree { char s; ...

Ускорение алгоритма
Я хочу реализовать свой метод компрессии данных (не спрашивайте зачем, оч. надо). Он заключается в...

Ускорение проги потоками
Здорова господа! Только что у меня прога глючила и вылетала я от не заметил она именно в дебаг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.