Решение задачи "Миша и смена хэндлов" с Codeforces

Без пояснения   Просмотров: 11


Взломав сайт Codeforces, Миша решил дать возможность всем пользователям менять их хэндлы. Пользователь теперь может сменить свой хэндл сколько угодно раз. Но при этом каждый новый хэндл не должен совпадать ни с каким из уже занятых или занятых в прошлом хэндлов.

У Миши есть список запросов пользователей на смену хэндлов. После их выполнения он хочет понять соответствие между исходными хэндлами пользователей и новыми. Помогите ему в этом.

Код

#include <bits/stdc++.h>

using namespace std;

signed main()
{
	int q;
	cin >> q;
	string o, n;
	set<string> s;
	map<string, string> p;
	for (int i = 0; i < q; i++)
	{
		cin >> o >> n;
		if (s.count(o))
		{
			s.erase(o);
			p[n] = p[o];
		}
		else
		{
			p[o] = o;
	    	p[n] = o;
	    }

		s.insert(n);
	}

	cout << s.size() << "\n";
	for (auto i: s)
		cout << p[i] << " " << i << "\n";

	return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться