DestapTM
07.11.2020 17:30

очень нужно C. Морозостойкость массива
ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
В Межгалактическом исследовательском центре проводят испытания массивов низкими температурами.

Оказалось, что при достаточно низких температурах массивы имеют свойство сжиматься. Сжатие массивов происходит следующим образом: два элемента в начале или в конце массива соединяются в один элемент. Значение полученного элемента равно сумме исходных элементов. Например, массив [7,5,9,8,3] может сжаться до [12,9,8,3] или до [7,5,9,11]. Массив размера 1 не может сжаться.

Также массивы имеют определенную прочность. Прочность массива определяется числом S, означающим наибольшее возможное значение элемента массива. Полученный при сжатии массива элемент не может превышать его прочность, иначе, если размер массива больше 1, то он ломается.

Морозостойкостью массива является число R — максимальная величина, на которую может уменьшиться длина массива, и массив при этом не сломается.

Вычислите морозостойкость для данного массива.

Входные данные
В первой строке заданы два целых числа n и S (1≤n≤2⋅105,1≤S≤109) — соответственно, размер и прочность массива.

Во второй строке заданы n целых чисел a1,a2,…,an (1≤ai≤S) — элементы массива.

Выходные данные
Выведите одно число R — искомую морозостойкость массива.

Система оценки
за каждый тест начисляются независимо.

Примеры
входные данныеСкопировать
5 15
7 5 9 8 3
выходные данныеСкопировать
2
входные данныеСкопировать
5 21
7 5 9 8 3
выходные данныеСкопировать
3
входные данныеСкопировать
5 100
7 5 9 8 3
выходные данныеСкопировать
4

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
abdulkhanaknie
16.12.2020 21:06
Незнаю верно ли я все понял, но как вариант можно сделать так
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>

bool DigitFirst(const std::string& rhs, const std::string& lhs)
{
    if (isdigit(rhs[0]) || isdigit(lhs[0]))
        return rhs < lhs;
}

bool LetterFirst(const std::string& rhs, const std::string& lhs)
{
    if (isalpha(rhs[0]) || isalpha(lhs[0]))
        return rhs < lhs;
}

const std::string TrueSort(std::string str, bool(*comparator)(const std::string&
rhs, const std::string& lhs))
{
    std::stringstream ss(str);
    std::vector<std::string> vstr(std::istream_iterator<std::string>(ss), {});
    std::sort(vstr.begin(), vstr.end(), comparator);
    ss.clear();
    std::copy(vstr.begin(), vstr.end(), std::ostream_iterator<std::string>(ss, " "));
    return ss.str();
}

int main()
{
    std::string first  = "position total 12345 2jz asd512fgh";
    std::string second = "year 10010 2018r r98k hello";
    std::cout << TrueSort(first,  DigitFirst ) << std::endl;
    std::cout << TrueSort(second, LetterFirst);
}
0,0(0 оценок)
Ответ:
vaierchik
16.12.2020 21:06
Const
  n1=15;
  n2=10;
  n3=12;
type
  V=array[1..15] of string;
procedure M_in(s:string; var a:V; n:integer);
{ ввод данных в массив }
var i:integer;
begin
  Writeln('Вводите по одному ',n,' элементов массива ',s);
  for i:=1 to n do Readln(a[i])
end; 

procedure M_out(var a:V; n:integer; c:char);
{ выводит элементы, начинающиеся с указанного символа }
var i:integer;
begin
  Writeln('*** Слова на букву ',c,' ***');
  for i:=1 to n do
    if a[i][1]=c then Writeln(a[i]);
  Writeln
end; 

var
  s1,s2,s3:V;
begin
  M_in('S1',s1,n1);
  M_in('S2',s2,n2);
  M_in('S3',s3,n3);
  M_out(s1,n1,'В');
  M_out(s2,n2,'Ц');
  M_out(s3,n3,'А');
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота