考试题解
szh_AK_all · · 题解
Source & Knowledge
2024 年 9 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
给定每次考试迅风和他的好朋友的得分,而迅风的得分是可以更改的,求迅风至少需要更改多少分才能令他的分数比好朋友的分数高的次数大于好朋友的分数比他的分数高的次数。
题目分析
本题考察简单综合运用。
由于要令迅风的更改的分数尽可能少,那么可以记录对于每次考试,迅风若要使自己的分数高于好朋友的分数,至少需要更改多少分,记
Code
#include <bits/stdc++.h>
using namespace std;
int a[1005], b[1005], c[1005];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++)
cin >> b[i];
for (int i = 1; i <= n; i++)
c[i] = b[i] - a[i];
sort(c + 1, c + n + 1);
int x = 0, y = 0;
for (int i = 1; i <= n; i++) {
if (c[i] == 0)
continue;
if (c[i] < 0)
x++;
else
y++;
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (x > y)
break;
if (c[i] < 0)
continue;
if (c[i] > 0) {
ans += c[i];
y--;
}
if (x > y)
break;
ans++;
x++;
}
cout << ans;
}