Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.08.2020
Сообщений: 4
1

Олимпиадное задание

01.12.2022, 20:48. Показов 485. Ответов 2

Author24 — интернет-сервис помощи студентам
В школе Виталия Петровича есть многолетняя традиция. На одной из стен выпускники оставляют памятную надпись. Она представляет собой палиндром, устроенный следующим образом: первый выпускной класс, положивший начало традиции, написал первую букву школьного девиза (девиз состоит исключительно из строчных латинских букв), второй добавил к надписи две вторые буквы девиза и всё, что было написано до него. С тех пор -й выпуск дописывает -ю букву девиза раз, после чего переписывает строку, которая была до этого. Вот как менялась памятная надпись первые три года, если девизом было слово foxford:

1-й год: f

2-й год: foof

3-й год: foofxxxfoof

Виталий Петрович заметил, что некоторые буквы со временем стёрлись, и решил их обновить. Он пригласил художников и сообщил им номера букв от начала надписи, которые требуется перекрасить (учтите, что художники, как и Виталий Петрович, привыкли начинать счёт с 1, а не с 0, как программисты). На вопрос художников, какие именно буквы им нужно написать, Виталий Петрович ответить затруднился, ведь буквы стёрлись до нечитаемого состояния. Чтобы художники лучше поняли задание, найдите буквы, которые предстоит писать каждому из них.

Входные данные

В первой строке входных данных записано целое число — количество букв, которые нужно восстановить ().

Во второй строке записан девиз школы, состоящий из строчных латинских букв. Длина девиза гарантированно позволяет написать все требуемые буквы.

В третьей строке через пробел написаны целые числа — позиции букв, нуждающихся в восстановлении.

Выходные данные

Выведите строку из строчных латинских букв, стоящих на позициях, указанных в задании, в том же порядке. Буквы в ответе идут подряд, без пробелов.

Пример

Входные данные



5

abcdefgh

8 5 1 10 4

Выходные данные

acaba
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2022, 20:48
Ответы с готовыми решениями:

Олимпиадное задание на школьной олимпиаде
75 боликов стоят дороже, чем 125 лёликов, но дешевле, чем 126 лёликов. Каждый из них дешевле рубля...

Олимпиадное задание "Калькулятор рациональных дробей"
Калькулятор рациональных дробей (выполнение операций сложения, вычитания, умножения, деления).

Олимпиадное задание "Сильные мира сего"
Преподаватель дал задания с олимпиады, но так как С++ мы проходим от силы месяц, то мы не поняли...

Олимпиадное программирование
Доброго времени суток!Собсна сабж: в школе участвовал на олимпиадах по программированию, занимался...

2
505 / 400 / 88
Регистрация: 05.08.2022
Сообщений: 2,206
01.12.2022, 23:34 2
В чем вопрос?
0
И тут вот те нате
318 / 206 / 116
Регистрация: 12.07.2016
Сообщений: 548
01.12.2022, 23:36 3
Лучший ответ Сообщение было отмечено Renat2006 как решение

Решение

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
#include <iostream>
using namespace std;
 
int main()
{
    int n, ins_sz, old_sz, i, j;
    char slogan[20], inscription[11];
    int positions[11];
    
    cin>>n>>slogan;
    for( i=0; i<n; ++i )
        cin>>positions[i];
    
    ins_sz = 0;
    inscription[ins_sz++] = slogan[0];
    for( i=1; i<3; ++i )
    {
        old_sz = ins_sz;
        for( j=0; j<i+1; ++j )
            inscription[ins_sz++] = slogan[i];
        for( j=0; j<old_sz; ++j )
            inscription[ins_sz++] = inscription[j];
    }
    
    for( i=0; i<n; ++i )
        cout<<inscription[positions[i]-1];
 
    return 0;
}
2
01.12.2022, 23:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2022, 23:36
Помогаю со студенческими работами здесь

Олимпиадное программирование
Здравствуйте. Посоветуйте, пожалуйста, какие-нибудь книги или интернет-ресурсы по олимпиадному...

Изучение С/С++. Олимпиадное программирование
Здравствуйте. Сейчас учусь на первом курсе, изучаю С, потом перейду на С++. В будущем планирую...

Сортировка турелей(олимпиадное программирование)
B. Сортировка турелей Ограничение времени 1 секунда Ограничение памяти 256Mb Ввод стандартный...

Драконы и лапки(олимпиадное программирование)
D. Драконы и лапки Ограничение времени 1 секунда Ограничение памяти 256Mb Ввод стандартный ввод...

Задание на массив и задание на матрицу.
1.Удалить из массива A(n) нулевые элементы, передвигая на их место следующие элементы, не нарушая...

Олимпиадное задание
Задача. Составьте программу поиска целочисленных сторон a, b, c всех треугольников, площади...

Олимпиадное задание
Помогите пожалуйста Нужно доказать, что если a,b,c стороны треугольника ABC и f величина угла C,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru