题解(超绝深索deepseek)
2025-02-26 22:03:38
发布于:江苏
0阅读
0回复
0点赞
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN = 10005; // 假设利润范围在 -10000 到 10000 之间
int n, num;
struct QAQ {
int profit; // 利润
int count; // 频次
} a[MAXN * 2]; // 数组大小足够大,避免越界
bool cmp(QAQ x, QAQ y) {
return x.profit < y.profit; // 按利润升序排序
}
int main() {
cin >> n; // 天数
int income[MAXN], expense[MAXN];
// 输入收入
for (int i = 0; i < n; i++) {
cin >> income[i];
}
// 输入支出
for (int i = 0; i < n; i++) {
cin >> expense[i];
}
// 计算利润并统计频次
for (int i = 0; i < n; i++) {
int profit = income[i] - expense[i];
int index = profit + MAXN; // 将利润映射到非负索引
if (a[index].count == 0) {
a[index].profit = profit;
num++;
}
a[index].count++;
}
// 按利润升序排序
sort(a, a + MAXN * 2, cmp);
// 输出结果
for (int i = 0; i < MAXN * 2; i++) {
if (a[i].count > 0) {
cout << a[i].profit << " " << a[i].count << endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个