Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm thứ hạng học sinh id=0 từ bảng điểm 4 môn bằng C++

Mô tả bài toán

n học sinh id 0..n-1. Mỗi học sinh 4 điểm. Sắp xếp giảm theo tổng điểm, tổng bằng nhau thì id tăng. Tìm thứ hạng của học sinh id=0.

Ví dụ

Bảng: 100 98 100 100 100 100 100 100 90 99 90 100 100 98 60 99 → id=0 tổng=398, id=1 tổng=400 → id=0 hạng 2.

Thuật toán

Tính tổng id=0 (p). Đếm số học sinh khác có tổng > p. Thứ hạng = 1 + count.

Code C++

#include <bits/stdc++.h>
using namespace std;

int solve(vector> table) {
    int n = table.size();
    int rank = 1;
    int sum0 = table[0][0]+table[0][1]+table[0][2]+table[0][3];
    for (int i = 1; i < n; i++) {
        int sum = table[i][0]+table[i][1]+table[i][2]+table[i][3];
        if (sum > sum0) rank++;
    }
    return rank;
}

int main() {
    vector> table = {{100,98,100,100},{100,100,100,100},{90,99,90,100},{100,98,60,99}};
    cout << solve(table) << endl;
    return 0;
}

Đầu vào / Đầu ra

Input: {{100,98,100,100},{100,100,100,100},{90,99,90,100},{100,98,60,99}}

Output: 2