Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 923 Bytes

027.md

File metadata and controls

34 lines (27 loc) · 923 Bytes

027 - Sign Up Requests (★2)

解答

std::unordered_set::insert() は戻り値として std:pair<iterator, bool> を返します。この .second 部 (bool) は、コンテナへのキーの追加に成功した(コンテナに同じキーが存在しなかった)場合に true, 追加に失敗した(コンテナに同じキーが既に存在した)場合に false を返します。

#include <iostream>
#include <string>
#include <unordered_set>

int main()
{
	// N 日間にわたる申請
	int N;
	std::cin >> N;

	// 登録済みのユーザ名を記録するハッシュテーブル
	std::unordered_set<std::string> ids;

	for (int i = 1; i <= N; ++i) // i 日目
	{
		// 申請されたユーザ名
		std::string id;
		std::cin >> id;

		if (ids.insert(id).second) // ユーザ名を新規登録できた場合
		{
			// 日にちを出力
			std::cout << i << '\n';
		}
	}
}