Разбор
Добавим названия городов из каждого теста в множество строк. Количество посещённых городов будет равно размеру этого множества.
Реализация алгоритма
Объявим строку и множество строк .
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))