Додамо назви міст із кожного тесту до множини рядків. Кількість відвіданих міст буде дорівнювати розміру цієї множини.
Реалізація алгоритму
Оголосимо рядок і множину рядків .
string word;
set<string> s;Читаємо кількість тестів . Послідовно обробляємо тестів.
cin >> tests;
while(tests--)
{Читаємо кількість міст . Очищаємо множину .
cin >> n;
s.clear();Читаємо міста, додаємо їх до множини .
while(n--)
{
cin >> word;
s.insert(word);
}Виводимо кількість різних відвіданих міст.
cout << s.size() << endl;
}Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
TreeSet<String> s = new TreeSet<String>();
int tests = con.nextInt();
for(int i = 0; i < tests; i++)
{
int n = con.nextInt();
s.clear();
for(int j = 0; j < n; j++)
{
String word = con.next();
s.add(word);
}
System.out.println(s.size());
}
con.close();
}
} Python реалізація
Читаємо кількість тестів . Послідовно обробляємо тестів.
tests = int(input())
for _ in range(tests):Читаємо кількість міст . Очищаємо множину .
n = int(input())
s = set({})Читаємо міста, додаємо їх до множини .
for _ in range(n):
s.add(input())Виводимо кількість різних відвіданих міст.
print(len(s))