P5728 【深基5.例5】旗鼓相當的對手

https://www.luogu.com.cn/problem/P5728
題目描述
現有 N(N≤1000) 名同學參加了期末考試,並且獲得了每名同學的信息:語文、數學、英語成績(均爲不超過 150 的自然數)。如果某對學生 <i,j> 的每一科成績的分差都不大於 5,且總分分差不大於 10,那麼這對學生就是“旗鼓相當的對手”。現在想知道這些同學中,有幾對“旗鼓相當的對手”?同樣一個人可能會和其他好幾名同學結對。

輸入格式
第一行一個正整數 N。

接下來 N 行,每行三個整數,其中第 i 行表示第 i 名同學的語文、數學、英語成績。最先讀入的同學編號爲 1。

輸出格式
輸出一個個整數,表示“旗鼓相當的對手”的對數。

輸入輸出樣例
輸入 #1 複製
3
90 90 90
85 95 90
80 100 91
輸出 #1 複製
2

結構體用的爽歪歪

#include<bits/stdc++.h>
using namespace std;
#define N 1005
struct node{
	int chinese, math, english, s;
}a[N]; 
int cnt;
int main(){
	int n;
	cin >> n;
	for(int i=1; i<=n; ++i){
		cin >> a[i].chinese >> a[i].math >> a[i].english;
		a[i].s = a[i].chinese + a[i].math + a[i].english;
	}
	for(int i=1; i<=n; ++i){
		for(int j=i+1; j<=n; ++j){
			if(abs(a[i].chinese - a[j].chinese) <= 5 && abs(a[i].math - a[j].math) <= 5 && abs(a[i].english - a[j].english) <= 5 && abs(a[i].s - a[j].s) <= 10)
				++cnt;
		}
	}
	cout << cnt;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章