#include <iostream>
using namespace std;
int main() {
int N, count=0;
long long max;
// создаем и заполняем массив
cin>>N;
long long* array=new long long[N];
for(int i=0; i<N; i++)
cin>>array[i];
//находим максимальный элемент
for(int i=0; i<N; i++)
{
if(i==0)
max=array[i];
else if(array[i]>max)
max=array[i];
}
//считаем элементы, равные максимальному
for(int i=0; i<N; i++)
if(array[i]==max)
count++;
//выводим результат
cout<<max<<" "<<count;
}
Первая - прямой перебор, но хорошо оптимизированный: с целочисленным вычислением корня для короткой схемы на квадратах. У меня на компьютере работает впритык, за 2.8 для 100k. Если бы не питон - укладывалось бы, но лень переписывать. На тестовом сервере скорее всего не уложится в таймлимит, просто для информации, что так тоже можно:
def prime_count(N):
primes = [2, 3]
i, s, s2 = 5, 3, 9
while len(primes) < N:
while s2 <= i:
s += 1
s2 = s*s
flag = True
for p in primes:
if p > s+1:
break
if i % p == 0:
flag = False
break
if flag:
primes.append(i)
i += 2
return primes[N-1]
print(prime_count(int(input(
Вторая: обычное решето Эратосфена. Сравни, насколько короче получилось =) Число 13 выведено эмпирически, для K<=100000 оно подходит, но потом будет маленьким. В общем случае там должна стоять величина log2(N) с каким-то множителем по теореме о плотности простых чисел. Для 100k работает раз в 15 быстрее, так что в лимит уложится точно:
def eratosthenes(N):
i, numbers = 0, [True] * (13 * N)
for index in range(N):
while not numbers[i]: i += 1
numbers[i::i+2] = [False] * len(numbers[i::i+2])
return i+2
print(eratosthenes(int(input(
Поделитесь своими знаниями, ответьте на вопрос:
1. 1) вася забыл пароль для запуска компьютера, но помнил алгоритм его получения из строки подсказки «kbra69kbk»: если все последовательности символов «ra6» заменить на «fl», «kb» на «12b», а затем из получившейся строки удалить три последних символа, то полученная последовательность и будет паролем. определите пароль: 1) 12bfl91 2) 12bfl9 3) kbfl912bk 4) 12bfl1 2 2) маша забыла пароль для запуска компьютера, но помнила алгоритм его получения из строки подсказки «kbmam9kbk»: если все последовательности символов «mam» заменить на «rp», «kbk» на «1212», а затем из получившейся строки удалить три последних символа, то полученная последовательность и будет паролем. определите пароль: 1) kbrp91 2) 1212rp91 3) kbrp9 4) kb91212 3 3) глаша забыла пароль для запуска компьютера, но помнила алгоритм его получения из строки подсказки «qwer3qwer1»: если все последовательности символов «qwer» заменить на «qq», а затем из получившейся строки удалить сочетания символов «3q», то полученная последовательность и будет паролем. определите пароль: 1) 3qqq1 2) qq1 3) qqq 4) qqq1 4 4) цепочка строится из бусин четырех типов, обозначенных буквами а, б, в, и. цепочка из трех бусин формируется по следующему правилу: 1) цепочка начинается согласной буквой; 2) после гласной буквы не может снова стоять гласная, а после согласной – согласная; 3) последней буквой не может быть а или в. какая из следующих цепочек создана по этому правилу: 1) бви 2) ави 3) бав 4) биб
Меняем "RA6" на "FL" → KBFL9KBK
Теперь "KB" на "12B" → 12BFL912BK
Далее убираем 3 последних символа → 12BFL91
ответ: 1
2) Имеем → KBMAM9KBK
Меняем "MAM" на "RP" → KBRP9KBK
Теперь "KBK" на "1212" → KBRP91212
Далее убираем 3 последних символа → KBRP91
ответ: 1
3) Имеем → QWER3QWER1
Меняем "QWER" на "QQ" → QQ3QQ1
Теперь удаляем "3Q" → QQQ1
ответ: 4
4) Имеем: А, Б, В, И.
Условия:
• Начинается с согласной → Б... или В...
• После гласной не стоит гласная → АБ или АВ или ИБ или ИВ
• После согласной не стоит согласная → БА или БИ или ВА или ВИ
• Последняя не А и не В → ...Б или ...И
Варианты:
1] БВИ → После согласной стоит согласная, не подходит
2] АВИ → Начинается с гласной, не подходит
3] БАВ → Заканчивается на В, не подходит
4] БИБ → Удовлетворяет всем условиям
ответ: 4