THPTTD_09 - Tính Tổng - LS

Xem dạng PDF

Gửi bài giải

Điểm: 6,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: SUMX.INP
Output: SUMX.OUT

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

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài


Bình luận

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



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

    #include <iostream>

    #include <fstream>

    #include <vector>

    #include <unordered_map>

    using namespace std;

    int main() { ifstream inp("SUMX.INP"); ofstream out("SUMX.OUT");

    int N, K;
    inp >> N >> K;
    
    vector<int> arr(N);
    for (int i = 0; i < N; ++i) {
        inp >> arr[i];
    }
    
    unordered_map&lt;int, int> freq;
    int count = 0;
    for (int i = 0; i < N; ++i) {
        int complement = K - arr[i];
        if (freq.find(complement) != freq.end()) {
            count += freq[complement];
        }
        freq[arr[i]]++;
    }
    
    out << count << endl;
    
    inp.close();
    out.close();
    
    return 0;
    

    }