alisha15sherban
27.09.2022 05:26

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
csmos
17.08.2022 19:06

C# самый простой вариант. Не нравится - совершенствуйте

на форму label1, textBox1, textBox2, textBox3, button1, button2, button3, this.button4, this.button5, this.button6

в Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

double a, b, result;

private void button1_Click(object sender, EventArgs e)

{

a = Convert.ToDouble(textBox1.Text);

b = Convert.ToDouble(textBox2.Text);

label1.Text = "Сумма";

result = a + b;

textBox3.Text = Convert.ToString(result);

}

private void button2_Click(object sender, EventArgs e)

{

a = Convert.ToDouble(textBox1.Text);

b = Convert.ToDouble(textBox2.Text);

label1.Text = "Разность";

result = a - b;

textBox3.Text = Convert.ToString(result);

}

private void button3_Click(object sender, EventArgs e)

{

label1.Text = "Произведение";

textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text));

}

private void button4_Click(object sender, EventArgs e)

{

a = Convert.ToDouble(textBox1.Text);

b = Convert.ToDouble(textBox2.Text);

label1.Text = "Частное";

result = a / b;

textBox3.Text = Convert.ToString(result);

}

private void button5_Click(object sender, EventArgs e)

{

textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox1.Text));

}

private void button6_Click(object sender, EventArgs e)

{

textBox3.Text = Convert.ToString(Math.Sqrt(Convert.ToDouble(textBox1.Text)));

}

}

}

0,0(0 оценок)
Ответ:
lineage216
18.09.2020 00:12

Объяснение:

h,w = int(input().split())

c,p = int(input().split())

s = []

roadm = []

parks = []

cp = []

for i in range(1, h+1):

 for j in range(1, w+1):

   s.append([i,j])

for k in s:

 if k[0]==1 or k[1]==1:

    roadm.append(s.pop(k))

for t in s:

 if t[0] == 2 or t[1] == 2:

   cp.append(s.pop(t))

for y in s:  

 if y[0] == (f[0]+1 for f in cp) and y[1] == (f[1]+1 for f in cp) and y[0] == (f[0]-1 for f in cp) and y[1] == (f[1]-1 for f in cp):

   parks.append(s.pop(y))

a = []

b = []

for o in s:

 a.append(o[0])

 b.append(o[1])

print(min(a))

print(min(b))

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота