Я була всюди#7546

Я була всюди (Розбір)

Додамо назви міст із кожного тесту до множини рядків. Кількість відвіданих міст буде дорівнювати розміру цієї множини.

Реалізація алгоритму

Оголосимо рядок і множину рядків .

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))