Вопрос Помощь с олимпиадой.

Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
5
Реакции[?]
2
Поинты[?]
0
Задача 4: Марсоход
Учёные рассматривают участок поверхности Марса, который можно представить в виде последовательности точек с высотами H1, H2, ..., HN. Высота между двумя соседними точками меняется равномерно.

Для исследований необходимо собрать информацию с любого отрезка участка поверхности, длина которого равна K. Для этого запланировано выбрать некоторую точку L, высадить туда марсоход и отправить его последовательно по точкам HL, HL+1, ..., HL+K.

Марсоход работает от аккумулятора. На перемещение на одну единицу вверх марсоход тратит одну единицу энергии. При перемещении на одну единицу вниз марсоход накапливает одну единицу энергии. На горизонтальное перемещение энергия не тратится. Изначально у марсохода достаточно энергии, чтобы изучить любой отрезок интересующего учёных участка, а максимальный возможный запас аккумулятора не ограничен.

Учёные хотят, чтобы для дальнейших исследований у марсохода осталось как можно больше энергии. Поэтому среди всех возможных вариантов им нужно найти такое L, чтобы итоговый запас аккумулятора после исследований оказался максимально возможным. Если таких L несколько, для определённости берется минимальное из возможных.

Помогите учёным найти номер стартовой точки L.

Входные данные
В первой строке входных данных содержится целое число N (2 ≤ N ≤ 250.000) — количество точек на интересующем учёных участке поверхности Марса.

Во второй строке содержится целое число K (1 ≤ K < N) — длина отрезка, который должен пройти марсоход.

В следующих N строках вводятся целые числа H1, H2, ..., HN (1 ≤ Hi ≤ 109) — высоты точек.

Выходные данные
Выведите единственное целое число L — номер стартовой точки для марсохода.

Пожалуйста, авторизуйтесь для просмотра ссылки.
- фотка.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Казалось бы, решается с помощью модификации заполнения массива префиксных сумм. Можете почитать -
Пожалуйста, авторизуйтесь для просмотра ссылки.
. UPD: не до конца прочитал условие, задача оказалась гораздо легче.
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
1,223
Реакции[?]
510
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
нахуй ты пошел на эту олимпиаду, если ничего там сделать не можешь 0_0
 
Начинающий
Статус
Оффлайн
Регистрация
20 Май 2019
Сообщения
4
Реакции[?]
0
Поинты[?]
0
1 задача - free pascal

var a:integer;
begin
readln(a);
if a=1 then writeln('1 2 3 4 65 66');
if a=2 then writeln('5 6 7 8 63 64');
if a=3 then writeln('9 10 11 12 61 62');
if a=4 then writeln('13 14 15 16 59 60');
if a=5 then writeln('17 18 19 20 57 58');
if a=6 then writeln('21 22 23 24 55 56');
if a=7 then writeln('25 26 27 28 53 54');
if a=8 then writeln('29 30 31 32 51 52');
if a=9 then writeln('33 34 35 36 49 50');
if a=10 then writeln('37 38 39 40 47 48');
if a=11 then writeln('41 42 43 44 45 46');
end.





2 задача - python
Python:
a=int(input())
b=int(input())
c=int(input())
n=int(input())
k=int(input())
d=n//3
s=d*(a+b+c)

if k==1:
        if n%3==1:
            s+=a

elif n%3==2:
        s+=a
        s+=b

if k==2:
        if n%3==1:
            s+=b

elif n%3==2:
        s+=b
        s+=c
if k==3:
        if n%3==1:
            s+=c
elif n%3==2:
      s+=c
        s+=a
        
print(s)

3 задача - python
Python:
n, result = int(input()), int(input())
spis = list(range(1, n + 1))while spis != [result]:
    index = spis.index(result) + 1
    if index % 2 != 0:
        spis = list(filter(lambda x: spis.index(x) % 2 == 0, spis))
        print(2)
    else:
        spis = list(filter(lambda x: spis.index(x) % 2 != 0, spis))
        print(1)


5 задача - python
Python:
def main():
    input()
    word = list(input())
    k = 0


    for index, i in enumerate(word):
        for j in word[index:]:
            if ord(i) < ord(j):
                k += 1

    print(k)


if __name__ == "__main__":
    main()
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
1 задача - free pascal

var a:integer;
begin
readln(a);
if a=1 then writeln('1 2 3 4 65 66');
if a=2 then writeln('5 6 7 8 63 64');
if a=3 then writeln('9 10 11 12 61 62');
if a=4 then writeln('13 14 15 16 59 60');
if a=5 then writeln('17 18 19 20 57 58');
if a=6 then writeln('21 22 23 24 55 56');
if a=7 then writeln('25 26 27 28 53 54');
if a=8 then writeln('29 30 31 32 51 52');
if a=9 then writeln('33 34 35 36 49 50');
if a=10 then writeln('37 38 39 40 47 48');
if a=11 then writeln('41 42 43 44 45 46');
end.





2 задача - python
Python:
a=int(input())
b=int(input())
c=int(input())
n=int(input())
k=int(input())
d=n//3
s=d*(a+b+c)

if k==1:
        if n%3==1:
            s+=a

elif n%3==2:
        s+=a
        s+=b

if k==2:
        if n%3==1:
            s+=b

elif n%3==2:
        s+=b
        s+=c
if k==3:
        if n%3==1:
            s+=c
elif n%3==2:
      s+=c
        s+=a
       
print(s)

3 задача - python
Python:
n, result = int(input()), int(input())
spis = list(range(1, n + 1))while spis != [result]:
    index = spis.index(result) + 1
    if index % 2 != 0:
        spis = list(filter(lambda x: spis.index(x) % 2 == 0, spis))
        print(2)
    else:
        spis = list(filter(lambda x: spis.index(x) % 2 != 0, spis))
        print(1)


5 задача - python
Python:
def main():
    input()
    word = list(input())
    k = 0


    for index, i in enumerate(word):
        for j in word[index:]:
            if ord(i) < ord(j):
                k += 1

    print(k)


if __name__ == "__main__":
    main()
в 1 у меня выдает 0 баллов
 
Новичок
Статус
Оффлайн
Регистрация
22 Мар 2019
Сообщения
1
Реакции[?]
0
Поинты[?]
0
что делать если пишет, что неполное решение и 0 баллов. выбираю python 3........
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
1 задача на паскале
program Olymp1;
var k:byte;
begin
readln (k);
writeln (4*k-3);
writeln (4*k-2);
writeln (4*k-1);
writeln (4*k);
writeln (66-2*k+1);
writeln (66-2*k+2);
end.
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
1 задача на питоне:

uy = int(input())
if uy == 1:
print('1','2','3','4','65','66')
elif uy == 2:
print('5','6','7','8','63','64')
elif uy == 3:
print('9','10','11','12','61','62')
elif uy == 4:
print('13','14','15','16','59','60')
elif uy == 5:
print('17','18','19','20','57','58')
elif uy == 6:
print('21','22','23','24','55','56')
elif uy == 7:
print('25','26','27','28','53','54')
elif uy == 8:
print('29','30','31','32','51','52')
elif uy == 9:
print('33','34','35','36','49','50')
elif uy == 10:
print('37','38','39','40','47','48')
elif uy == 11:
print('41','42','43','44','45','46')
 
Начинающий
Статус
Оффлайн
Регистрация
6 Сен 2020
Сообщения
85
Реакции[?]
7
Поинты[?]
0
Вы же понимаете, что это олимпиадав создана совместно с так называемой ШП. Они и код читают xD. От таких шакальных решений помрут все
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Задача 4: Марсоход
Учёные рассматривают участок поверхности Марса, который можно представить в виде последовательности точек с высотами H1, H2, ..., HN. Высота между двумя соседними точками меняется равномерно.

Для исследований необходимо собрать информацию с любого отрезка участка поверхности, длина которого равна K. Для этого запланировано выбрать некоторую точку L, высадить туда марсоход и отправить его последовательно по точкам HL, HL+1, ..., HL+K.

Марсоход работает от аккумулятора. На перемещение на одну единицу вверх марсоход тратит одну единицу энергии. При перемещении на одну единицу вниз марсоход накапливает одну единицу энергии. На горизонтальное перемещение энергия не тратится. Изначально у марсохода достаточно энергии, чтобы изучить любой отрезок интересующего учёных участка, а максимальный возможный запас аккумулятора не ограничен.

Учёные хотят, чтобы для дальнейших исследований у марсохода осталось как можно больше энергии. Поэтому среди всех возможных вариантов им нужно найти такое L, чтобы итоговый запас аккумулятора после исследований оказался максимально возможным. Если таких L несколько, для определённости берется минимальное из возможных.

Помогите учёным найти номер стартовой точки L.

Входные данные
В первой строке входных данных содержится целое число N (2 ≤ N ≤ 250.000) — количество точек на интересующем учёных участке поверхности Марса.

Во второй строке содержится целое число K (1 ≤ K < N) — длина отрезка, который должен пройти марсоход.

В следующих N строках вводятся целые числа H1, H2, ..., HN (1 ≤ Hi ≤ 109) — высоты точек.

Выходные данные
Выведите единственное целое число L — номер стартовой точки для марсохода.

Пожалуйста, авторизуйтесь для просмотра ссылки.
- фотка.
https://yougame.biz/threads/230162/ - решение всех задач с Вашей олимпиады. Что там можно было решать несколько часов - я не знаю.
 
Сверху Снизу