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