Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <set>
- #include <string>
- using namespace std;
- int main() {
- set <string> big_set, ans, qur;
- int n, k;
- cin >> n >> k;
- string s;
- for (int i = 0; i < n; ++i) {
- cin >> s;
- if (s.size() <= k) ans.insert(s);
- else {
- big_set.insert(s);
- }
- }
- string s1, s2;
- while (!big_set.empty()) {
- s = *big_set.begin();
- // s1.assign(s, 0, k + 1);
- // ans.insert(*big_set.begin());
- // big_set.erase(*big_set.begin());
- // for (auto i: big_set) {
- // s2.assign(i, 0, k + 1);
- // if (s1 == s2) big_set.erase(i);
- // }
- s1.assign(s, 0, k + 1);
- for (auto i: big_set) {
- s2.assign(i, 0, k + 1);
- if (s1 == s2) qur.insert(i);
- }
- ans.insert(*qur.begin());
- for (auto i: qur) big_set.erase(i);
- qur.clear();
- }
- cout << ans.size() << endl;
- for (auto i: ans) cout << i << endl;
- // string s1;
- // set <string> myset;
- // for (int i = 0; i < 15; ++i) {
- // cin >> s1;
- // myset.insert(s1);
- // }
- // cout << endl;
- // for (auto i: myset) cout << i << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement