NEWYEAR - Lời chúc tết

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Tí năm nay đã lên lớp 1 rồi, Tết đến Tí rất vui vì nhận được rất nhiều lời chúc.

Vì mới tập viết nên Tí đã ghi lại tất cả các lời chúc đó. Cũng vì rất trân trọng các lời chúc nên Tí đã ghi tất cả các lời chúc bằng chữ IN HOA, tuy nhiên do mới tập viết nên Tí ghi không có dấu. Giờ ngồi lật lại cuốn nhật ký ghi các lời chúc, Tí thấy mình đã ghi được ~n~ lời chúc.

Tí muốn biết có bao nhiêu lời chúc khác nhau (hai lời chúc được gọi là khác nhau nếu chúng có độ dài khác nhau hoặc tồn tại ít nhất một vị trí mà ký tự ở vị trí đó của hai lời chúc là khác nhau, hay nói cách khác, đó là hai xâu ký tự khác nhau). Bạn hãy lập chương trình giúp Tí đếm xem có bao nhiêu lời chúc khác nhau nhé.

Input

  • Dòng đầu chứa số nguyên dương ~n~ là số lời chúc Tí ghi được;
  • ~n~ dòng tiếp theo, mỗi dòng chứa một xâu ký tự là một lời chúc.

Giới hạn:

  • ~1 ≤ n ≤ 10^4~; Các lời chúc có độ dài không quá ~30~ ký tự gồm các chữ cái latinh IN HOA ‘A’…’Z’ và dấu cách.

Output

  • Một số nguyên dương duy nhất là số lời chúc khác nhau.

Sample

Input #1
4
CHUC MUNG NAM MOI
HAPPY NEW YEAR
CHUC MUNG TUOI MOI
CHUC MUNG NAM MOI
Output #1
3

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    gtmailong  đã bình luận lúc 24, Tháng 4, 2024, 9:56

    c++

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        cin.ignore();
        vector<string> s1(n);
        vector<string> s2;
        for (int i = 0; i < n; i++){
            getline(cin,s1[i]);
        }
        for (string x : s1){
            bool Push = true;
            for (string y : s2){
                if (x == y){
                    Push = false;
                    break;
                }
            }
            if (Push) s2.push_back(x);
        }
        cout << s2.size();
    }
    

  • -11
    Methamphetamin  đã bình luận lúc 7, Tháng 2, 2024, 19:28

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 0
    chinhle  đã bình luận lúc 4, Tháng 2, 2024, 7:03

    code python:

    t = int(input())

    main = []

    for _ in range(t):

     main.append(input())
    

    main = list(set(main))

    print(len(main))


  • 4
    hohoanghai5042011  đã bình luận lúc 27, Tháng 1, 2024, 9:41

    #include <iostream>

    #include <set>

    #include <string>

    using namespace std; int main() { int n; cin >> n; cin.ignore(); set<string> uniqueWishes; for (int i = 0; i < n; ++i) { string wish; getline(cin, wish); uniqueWishes.insert(wish); } cout << uniqueWishes.size() << endl; return 0; }


    • 2
      hohoanghai5042011  đã bình luận lúc 20, Tháng 2, 2024, 8:57

      Giải thích

      #include <iostream>: Thêm thư viện iostream để sử dụng các hàm nhập xuất chuẩn

      #include <set>: Thêm thư viện set để sử dụng cấu trúc dữ liệu set, một cấu trúc dữ liệu giúp lưu trữ các phần tử duy nhất.

      include <string>: Thêm thư viện string để sử dụng kiểu dữ liệu string

      using namespace std;: Sử dụng namespace std để việc sử dụng các thành phần của thư viện chuẩn dễ dàng hơn.

      Trong hàm main():

      int n;: Khai báo biến n để lưu số lượng điều ước đầu vào.

      cin >> n;: Nhập số lượng điều ước từ người dùng.

      cin.ignore();: Dùng để xóa ký tự '\n' còn lại sau khi nhập vào biến n để tránh ảnh hưởng đến việc nhập chuỗi tiếp theo.

      set<string> uniqueWishes;: Khởi tạo một set có kiểu dữ liệu là string để lưu trữ các điều ước duy nhất.

      for (int i = 0; i < n; ++i) { ... }: Duyệt qua từng điều ước và thêm chúng vào set.

      string wish;: Khai báo biến wish để lưu trữ từng điều ước đọc vào.

      getline(cin, wish);: Đọc một dòng chứa điều ước từ người dùng và lưu vào biến wish.

      uniqueWishes.insert(wish);: Thêm điều ước vào set uniqueWishes. Vì set chỉ chứa các phần tử duy nhất nên bất kỳ điều ước nào đã được thêm vào set cũng chỉ xuất hiện một lần.

      cout << uniqueWishes.size() << endl;: In ra số lượng điều ước duy nhất đã được nhập. Kích thước của set chính là số lượng các phần tử duy nhất.

      return 0;: Kết thúc chương trình và trả về giá trị 0 cho hàm main(), thể hiện việc chương trình đã thực thi thành công.