[Mảng 1 Chiều Cơ Bản]. Bài 46. Cặp số chia hết cho 28

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Nguồn bài:
28Tech
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

28Tech là người rất thích số 28, anh ta cho bạn mảng A[] gồm N phần tử, bạn hãy đếm xem trong mảng có bao nhiêu cặp số A[i], A[j] với i khác j mà khi cộng với nhau sẽ tạo thành 1 số chia hết cho 28.


Đầu vào

Dòng 1 là N : số phần tử trong mảng

Dòng 2 là N phần tử cách nhau 1 khoảng trắng


Giới hạn

1<=N<=10^6

0<=A[i]<=10^9


Đầu ra

In ra số cặp thỏa mãn


Ví dụ :

Input 01
5
1 14 14 27 27
Output 01
3

Bình luận

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



  • 0
    bengokyeuanh99  đã bình luận lúc 23, Tháng 6, 2025, 18:05

    include <cstdio>

    using namespace std;

    int freq[28];

    int main() { int n, x; scanf("%d", &n); while (n--) { scanf("%d", &x); freq[x % 28]++; }

    long long res = 0;
    
    // TH đặc biệt: r + r == 28 → r = 14 hoặc r = 0
    res += 1LL * freq[0] * (freq[0] - 1) / 2;
    res += 1LL * freq[14] * (freq[14] - 1) / 2;
    
    // Các cặp (i, 28 - i) với i = 1..13
    for (int i = 1; i < 14; ++i)
        res += 1LL * freq[i] * freq[28 - i];
    
    printf("%lld\n", res);
    return 0;
    

    }


  • -15
    binhngoan261009  đã bình luận lúc 1, Tháng 9, 2024, 14:44

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


  • -8
    nguyenanhquang  đã bình luận lúc 8, Tháng 8, 2024, 7:50

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


  • -6
    minhquan2905  đã bình luận lúc 28, Tháng 7, 2024, 11:57

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


  • 8
    minhquan2905  đã bình luận lúc 28, Tháng 7, 2024, 10:59

    vận dụng: A % 28 = 0 <=> (a%28 + b%28) % 28 = 0 => đặt x = a%28, y=b%28 <=> (x+y)%28 = 0 mà x, y <= 28 -> x+y=28 -> bài toán trở thành tìm, đếm cặp số dư bằng 28. (TH đặc biệt: x=y=14 , x=y=0 -> xét riêng)


    • -2
      GodNona  đã bình luận lúc 2, Tháng 2, 2025, 16:34

      A giúp e với a. E bị wrong answer

      include <bits/stdc++.h>

      using namespace std;

      define ll long long

      const int MOD = 1e9 + 7;

      ll a[1000006]; ll dem[28];

      int main() { iosbase::syncwith_stdio(0); cin.tie(NULL);

      int n; cin >> n;
      for(int i = 0; i < n; i++)
          cin >> a[i];
      
      for(int i = 0; i < n; i++)
          dem[a[i] % 28]++;
      
      int res = 0;
      res += dem[0] * (dem[0] - 1) / 2;
      for(int i = 1; i <= 13; i++)
          res += dem[i] * dem[28 - i];
      res += dem[14] * (dem[14] - 1) / 2;
      
      cout << res;
      
      return 0;
      

      }


      • -2
        minhquan2905  đã bình luận lúc 4, Tháng 2, 2025, 16:37

        biến res bị tràn, để ll đi =D


    • -2
      Long4200  đã bình luận lúc 28, Tháng 1, 2025, 6:31

      tks bro


  • -19
    NTH11112222  đã bình luận lúc 25, Tháng 5, 2024, 2:33

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