#include <string>
#include <algorithm>
#include <iostream>
int main()
{
std::string string1 = "kanu";
std::string string2 = "charu";
std::string string_difference, string_intersection, string_union;
std::sort(string1.begin(), string1.end());
std::sort(string2.begin(), string2.end());
std::set_difference(string1.begin(), string1.end(), string2.begin(), string2.end(), std::back_inserter(string_difference));
std::cout << "In string1 but not string2: " << string_difference << std::endl;
std::set_intersection(string1.begin(), string1.end(), string2.begin(), string2.end(), std::back_inserter(string_intersection));
std::cout << "string1 intersect string2: " << string_intersection << std::endl;
std::set_union(string1.begin(), string1.end(), string2.begin(), string2.end(), std::back_inserter(string_union));
std::cout << "string1 union string2: " << string_union << std::endl;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnN0cmluZyBzdHJpbmcxID0gImthbnUiOwogICAgc3RkOjpzdHJpbmcgc3RyaW5nMiA9ICJjaGFydSI7CiAgICBzdGQ6OnN0cmluZyBzdHJpbmdfZGlmZmVyZW5jZSwgc3RyaW5nX2ludGVyc2VjdGlvbiwgc3RyaW5nX3VuaW9uOwoKICAgIHN0ZDo6c29ydChzdHJpbmcxLmJlZ2luKCksIHN0cmluZzEuZW5kKCkpOwogICAgc3RkOjpzb3J0KHN0cmluZzIuYmVnaW4oKSwgc3RyaW5nMi5lbmQoKSk7CgogICAgc3RkOjpzZXRfZGlmZmVyZW5jZShzdHJpbmcxLmJlZ2luKCksIHN0cmluZzEuZW5kKCksIHN0cmluZzIuYmVnaW4oKSwgc3RyaW5nMi5lbmQoKSwgc3RkOjpiYWNrX2luc2VydGVyKHN0cmluZ19kaWZmZXJlbmNlKSk7CiAgICBzdGQ6OmNvdXQgPDwgIkluIHN0cmluZzEgYnV0IG5vdCBzdHJpbmcyOiAiIDw8IHN0cmluZ19kaWZmZXJlbmNlIDw8IHN0ZDo6ZW5kbDsKCiAgICBzdGQ6OnNldF9pbnRlcnNlY3Rpb24oc3RyaW5nMS5iZWdpbigpLCBzdHJpbmcxLmVuZCgpLCBzdHJpbmcyLmJlZ2luKCksIHN0cmluZzIuZW5kKCksIHN0ZDo6YmFja19pbnNlcnRlcihzdHJpbmdfaW50ZXJzZWN0aW9uKSk7CiAgICBzdGQ6OmNvdXQgPDwgInN0cmluZzEgaW50ZXJzZWN0IHN0cmluZzI6ICIgPDwgc3RyaW5nX2ludGVyc2VjdGlvbiA8PCBzdGQ6OmVuZGw7CgogICAgc3RkOjpzZXRfdW5pb24oc3RyaW5nMS5iZWdpbigpLCBzdHJpbmcxLmVuZCgpLCBzdHJpbmcyLmJlZ2luKCksIHN0cmluZzIuZW5kKCksIHN0ZDo6YmFja19pbnNlcnRlcihzdHJpbmdfdW5pb24pKTsKICAgIHN0ZDo6Y291dCA8PCAic3RyaW5nMSB1bmlvbiBzdHJpbmcyOiAiIDw8IHN0cmluZ191bmlvbiA8PCBzdGQ6OmVuZGw7Cn0K