幼い頃からC++を学びましょう!Xueersi Monkey プログラミングの学習プロセスにおける質問を記録し、あらゆる瞬間を記録します。いかなる侵害も直ちに削除されますので、ご支援のほどよろしくお願いいたします。
概要の投稿を添付します: Little Monkey プログラミング C++ | 概要-CSDN ブログ
[タイトル説明]
小猿は飛び込み競技を見ています。
飛び込み競技には n人の選手が参加し 、 m人の 審査員がいます。各競技者がダイビングした後、各審査員が採点を行います。可能な限り公平かつ客観的であるため、各出場者のスコアは、スコアから最大値と最小値を除いた残りのスコアの平均値となります(最大値/最小値が複数ある場合は、1 つだけを削除します)。裁判官全員。
最終的に最も高いスコアを獲得したプレーヤーが 1 位となり、2 番目に高いスコアを獲得したプレーヤーが 2 位となり、以下同様となります。ただし、得点が同数の場合は、猿がデフォルトで小さい数字のプレイヤーを優先します。つまり、プレーヤー番号 3 とプレーヤー番号 5 が両方とも 70 点を獲得した場合、サルはプレーヤー番号 3 の方がプレーヤー番号 5 よりもランクが高いと考えるでしょう。
これで、小猿はすべてのプレーヤーのすべてのジャッジのスコアを知ったので、プレーヤーのランキング リストを計算するのを手伝ってもらいたいと考えています。つまり、 1 ≤ i ≤ nの場合、 i 番目のプレーヤーの番号を計算 します 。 。
【入力】
最初の行の2 つの整数 nとm は、それぞれプレーヤーの数とジャッジの数を表します。
次の n行には、 各行に m 個の 整数が 含まれています。i 行目のj 番目の整数 ai は 、i 番目のプレーヤーがダイブした後に j 番目のジャッジが与えたスコアを 表します 。各プレーヤーの番号は 1~ です。 入力 の順序.n 。_ _
【出力】
n個の整数の行を出力します 。i 番目の整数は、 i にランク付けされたプレーヤーの番号 を表します 。
【入力サンプル】
4 4
4 70 69 34
18 43 85 71
100 50 69 80
67 82 90 43
【出力サンプル】
3 4 2 1
【詳しいコード説明】
#include <bits/stdc++.h>
using namespace std;
struct Stu {
int s, id;
}a[2010];
bool cmp(Stu x, Stu y)
{
if (x.s != y.s) return x.s>y.s;
return x.id<y.id;
}
int main()
{
int n, m;
cin >> n >> m;
for (int i=1; i<=n; i++) {
a[i].id = i;
int sum=0, maxn=0, minn=100;
for (int j=1; j<=m; j++) {
int score;
cin >> score;
maxn = max(maxn, score);
minn = min(minn, score);
sum += score;
}
a[i].s = sum - maxn - minn;
}
sort(a+1, a+n+1, cmp);
for (int i=1; i<=n; i++) {
cout << a[i].id << " ";
}
return 0;
}
【運用結果】
4 4
4 70 69 34
18 43 85 71
100 50 69 80
67 82 90 43
3 4 2 1