Областная олимпиада по информатике 2017 г.


Строка считается красивой, если все буквы в ней различны.
Вам дана строка $S$, состоящая из строчных английских букв. Найдите красивую и наименьшую в лексикографическом порядке строку, которую можно получить путем удаления повторяющихся букв строки S так, чтобы каждая уникальная буква строки появлялась один раз и только один раз.
Лексикографический порядок определяется следующим образом. Пусть даны две строки $A = a_1 a_2 \cdots a_n$ и $B = b_1 b_2 \cdots b_m$. Тогда строка $A$ лексикографически меньше строки $B$, если выполняется одно из двух условий:

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

В первой строке следует целое положительное число $K$ ($1 ≤ K ≤ 10^5$) — длина строки $S$. Во второй строке следует строка $S$ длины $K$, состоящая из строчных букв английского алфавита.

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

Выведите ответ на задачу.

Примеры:

Вход:
5 
yzxyz
Ответ:
xyz
Вход:
8 
yxwyzyxy
Ответ:
wyzx

Оценивание:

В $20$% тестов: $1 ≤ K ≤ 20$.
посмотреть в олимпиаде

Комментарий/решение:

  0
2020-12-15 13:16:41.0 #

#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;

}

}

показать/скрыть код

  0
2020-12-15 13:17:07.0 #

показать/скрыть код

#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;

}

}

  0
2020-12-15 16:42:16.0 #

показать/скрыть код

  4
2021-02-06 17:09:53.0 #

второй тест не проходит

  0
2022-12-13 11:27:49.0 #

code#include<bits/stdc++.h>

using namespace std;

#define ll long long

int main () {

ios_base::sync_with_stdio(0);

cin.tie(0);cout.tie(0);

set<char> s;

ll n;

cin>>n;

char c[n];

for(ll i=0;i<n;i++){cin>>c[i];

s.insert(c[i]);}

for(auto p : s)

cout<<p;

}

__code

  0
2022-12-13 11:28:05.0 #

показать/скрыть код