DD

sau để khảo sát các bạn: Cho số nguyên dương n và dãy số nguyên dương a1, a2, ...an. Hãy đếm xem có bao nhiêu cặp (i, j) khác nhau, để kết quả của tích ai*aj có chữ số tận cùng bằng 9 (1 ≤ i<j<n).
Dữ liệu: Vào từ file TICH9.INP gồm:
+ Dòng đầu tiên là số nguyên dương n (2 ≤ n ≤ 10);
+ Dòng thứ 2 là n số nguyên dương a1, a2, ...an (ai ≤ 10100).
Kết quả: Ghi ra file TICH9.OUT là số lượng cặp thỏa mãn bài toán.
Ví dụ:
TICH9.INP
TICH9.OUT
4
2
3391
Ràng buộc:
+ Có 60% số điểm có n ≤ 103 và ai ≤ 100;
+ Có 30% số điểm có ai ≤ 109.
+ Có 10% số điểm còn lại không có ràng buộc gì thêm.

giúp mk nhé 😇😇

VH
10 tháng 9 2024 lúc 21:01

#include <iostream>
#include <fstream>

using namespace std;

const int MAXN = 1e5 + 5;

int n, a[MAXN], countDigit[10];

long long C(int n) {
    return 1LL * n * (n - 1) / 2;
}

int main() {
    ifstream fin("TICH9.INP");
    ofstream fout("TICH9.OUT");

    fin >> n;
    for (int i = 1; i <= n; i++) {
        fin >> a[i];
        countDigit[a[i] % 10]++;
    }

    long long ans = C(countDigit[1]) + C(countDigit[9]) + C(countDigit[3]) + C(countDigit[7]);
    fout << ans << endl;

    return 0;
}

Bình luận (0)

Các câu hỏi tương tự
TT
Xem chi tiết
TH
Xem chi tiết
H24
Xem chi tiết
TT
Xem chi tiết
NM
Xem chi tiết
H24
Xem chi tiết
HT
Xem chi tiết
DH
Xem chi tiết
PT
Xem chi tiết
H24
Xem chi tiết