TB椰程 TypeBuddy 打字搭子

旗鼓相当的对手

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 760 字

统计每科分差<=5且总分差<=10 的数对个数

  • 洛谷
  • 例题

正文

// 原题:https://oj.yecheng.tv/p/1398
// 题意:n 名同学(语数英),若某对每科分差<=5 且总分差<=10 则为对手,求对数。
// 思路:存成绩数组,枚举所有 i<j 对,逐科与总分比较。
// 复杂度:O(n^2),n<=1000。
// 易错点:是“每科”分差都<=5(不是总分),且总分差<=10;i<j 不重复计数。
#include <iostream>
using namespace std;
int a[1005][3];
int sum(int i){ return a[i][0] + a[i][1] + a[i][2]; }
int main(){
    int n, cnt = 0;
    cin >> n;
    for(int i = 0; i < n; i++) cin >> a[i][0] >> a[i][1] >> a[i][2];
    for(int i = 0; i < n; i++)
        for(int j = i + 1; j < n; j++){
            if(abs(a[i][0] - a[j][0]) > 5) continue;
            if(abs(a[i][1] - a[j][1]) > 5) continue;
            if(abs(a[i][2] - a[j][2]) > 5) continue;
            if(abs(sum(i) - sum(j)) > 10) continue;
            cnt++;
        }
    cout << cnt << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK