C. В поисках палиндрома ограничение по времени на тест1 секунда
ограничение по памяти на тест256 мегабайт
вводстандартный ввод
выводстандартный вывод
У друга Поликарпа завтра день рождения. Недолго думая, Поликарп решил подарить ему палиндром, состоящий из строчных букв латинского алфавита. Поликарп знает, что его друг любит некоторые буквы, в количестве K штук. Поликарпу очень важен его друг, поэтому он хочет подарить ему самый красивый палиндром, содержащий хотя бы одну его любимую букву. Будем считать, что один палиндром красивее другого, если в нем есть любимая буква, стоящая в алфавите позже, чем все любимые буквы второго палиндрома.
В магазине палиндромов продавец выдал Поликарпу строку S длиной в N символов, из которой он может выбрать любую подстроку, являющеюся палиндромом. Гарантируется, что в данной строке содержится хотя бы один палиндром.
Поликарпу найти самый лучший палиндром. Если в строке S нет палиндромов, содержащих любимые буквы, то выведите любой палиндром, который является подстрокой S.
Определение: Палиндром — строка, одинаково читающаяся в обоих направлениях.
Входные данные
Первая строка содержит два целых числа N и K (1≤N≤105,1≤K≤26) — длину строки S и количество любимых букв.
Вторая строка содержит строку, состоящую из K строчных латинских различных букв — любимые буквы друга Поликарпа.
Третья строка содержит строку S, состоящую из N строчных латинских букв.
Выходные данные
Выведите одну единственную строку — самый лучший палиндром, который можно получить из строки S.
Если существует несколько палиндромов, удовлетворяющих условию, то выведите любой из них.
Система оценки
Подзадачи Ограничения Необходимые подзадачи Тип проверки
1 1≤N≤105 , 1≤K≤26 100 — Каждый тест
Примеры
входные данныеСкопировать
4 1
g
gmgi
выходные данныеСкопировать
gmg
входные данныеСкопировать
8 3
bcn
ianfffnb
выходные данныеСкопировать
nfffn
входные данныеСкопировать
16 7
codevka
cejecgaagdeakvka
выходные данныеСкопировать
akvka
#include <iostream>
#include <vector>
using namespace std;
void solve(){
int m,n;
cin >> m >> n;
vector<vector<int>> a(m,vector<int>(n));
vector<bool> b(m, true);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
cin >> a[i][j];
for(int i = 0; i < m; i++)
for(int j = 1; j < n; j++)
if(a[i][j] <= a[i][j-1])
b[i] = false;
for(auto i : b) cout << i << " ";
}
signed main(){
solve();
}
Объяснение:
Приведите примеры ситуаций, в которых информация:
собирается - опрос журналистом людей для статьи в газете
обрабатывается - решение учеником задачи
упрощается - тбъяснение учителем материала урока
создается - придумывание журналистом статьи (как ее написать, что в ней написать и т.д)
запоминается - выучивание учеником стиха
измеряется - рассчитывание программистом объема, который займет написанная им программа
копируется - списывание учеником домашнего задания у одноклассника
передается - распространение слухов внутри класса или школы (один рассказал, другой передал и так далее)
принимается - ученики слушают, что им рассказывает учитель на уроке
разрушается - отклонение написанной статьи журналиста
делится на части - работа с текстом на уроке русского языка (вставить запятые, буквы, например)
ищется - поиск материала для написания сообщения, доклада на какой-либо урок
Надеюсь, смогла