khó khăn không có ý tưởng

Lewjxz 2022-01-23 16:58:18

Mn đi qua có thể cho e xin ý tưởng làm bài này với ạ! E cảm ơn mn nhiều!!

Tổng cộng 1 trả lời

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int main() { ll n, sum = 0; cin >> n;

vector a(n); for(ll i = 0; i < n; ++i) cin >> a[i];

sort(a.begin(), a.end(), greater());

for(ll i = 2; i < n; i += 3) sum += a[i];

cout << sum; return 0; }

Giải thích chi tiết về code: Nhập dữ liệu:

Dữ liệu đầu vào là một số nguyên n (số phần tử trong mảng). Sau đó, nhập các phần tử mảng a[1] đến a[n]. Sắp xếp mảng:

Mảng a được sắp xếp theo thứ tự giảm dần (giảm dần từ phần tử lớn nhất đến nhỏ nhất) sử dụng hàm sort() với greater() làm đối số. Tính tổng:

Sau khi mảng đã được sắp xếp, ta tính tổng các phần tử có chỉ số là bội số của 3 (tức là các phần tử có chỉ số 3, 6, 9, ...). Vòng lặp bắt đầu từ chỉ số 3, và mỗi lần tăng chỉ số thêm 3 (vì ta chỉ muốn lấy các chỉ số chia hết cho 3). Mỗi lần duyệt qua chỉ số, ta cộng giá trị của phần tử tương ứng vào biến sum. In kết quả:

Cuối cùng, in ra giá trị của biến sum, là tổng các phần tử ở vị trí 3, 6, 9,... trong mảng đã được sắp xếp.

Ví dụ minh họa: Giả sử: Input: 6 5 1 7 3 8 6 Sau khi sắp xếp theo thứ tự giảm dần: a = [8, 7, 6, 5, 3, 1]. Các phần tử có chỉ số chia hết cho 3 là a[3] = 6 và a[6] = 1. Tổng các phần tử này là 6 + 1 = 7. Output sẽ là: 7