Областная олимпиада по информатике 2016-2017
Строка считается $красивой$, если все буквы в ней различны.
Вам дана строка $S$, состоящая из строчных английских букв. Найдите красивую и наименьшую в лексикографическом порядке строку, которую можно получить путем удаления повторяющихся букв строки S так, чтобы каждая уникальная буква строки появлялась один раз и только один раз.
Лексикографический порядок определяется следующим образом. Пусть даны две строки $A = a_1 a_2 \dots a_n$ и B = b1 b2 \dots b_m. Тогда строка $A$ лексикографически меньше строки $B$, если выполняется одно из двух условий:
посмотреть в олимпиаде
Вам дана строка $S$, состоящая из строчных английских букв. Найдите красивую и наименьшую в лексикографическом порядке строку, которую можно получить путем удаления повторяющихся букв строки S так, чтобы каждая уникальная буква строки появлялась один раз и только один раз.
Лексикографический порядок определяется следующим образом. Пусть даны две строки $A = a_1 a_2 \dots a_n$ и B = b1 b2 \dots b_m. Тогда строка $A$ лексикографически меньше строки $B$, если выполняется одно из двух условий:
- $n
- $∃k≤min(n,m):a_k
- $∃k≤min(n,m):a_k
Входные данные
В первой строке следует целое положительное число $K$ ($1 ≤ K ≤ 10^5$) — длина строки $S$. Во второй строке следует строка $S$ длины $K$, состоящая из строчных букв английского алфавита.Выходные данные
Выведите ответ на задачу.Примеры:
Вход:5 yzxyzОтвет:
xyzВход:
8 yxwyzyxyОтвет:
wyzx
Оценивание:
В $20%$ тестов: $1 ≤ K ≤ 20$.Комментарий/решение:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
set<char>st;
for(int i=0;i<s.size();i++)
{
st.insert(s[i]);
}
for(auto i : st)
{
cout<<i;
}
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
set<char>st;
for(int i=0;i<s.size();i++)
{
st.insert(s[i]);
}
for(auto i : st)
{
cout<<i;
}
}
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.