题解(有注释)
2025-10-18 23:00:04
发布于:福建
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,x[110],y[110],z[105];
int main(){
cin>>n;
//输入
for(int i = 1;i<=n;i++){
cin>>x[i];
}
for(int i = 1;i<=n;i++){
cin>>y[i];
}
//输入利润
for(int i = 1;i<=n;i++){
z[i]=x[i]-y[i];
}
//排序(升序排列)
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n-1;j++){
if(z[j]>z[j+1]){
swap(z[j],z[j+1]);
}
}
}
for(int i = 1;i<=n;i++){
int t=1;
for(int j = 1;j<=n;j++){
if(z[i]==z[j]&&i!=j){//计算频次
t++;
z[j]=999999;//案例演示
//4 0 2 5 4
//3 3 3 3 3
//1 -3 -1 2 1
//-3 -1 1 1 2
//z[3]==z[4]&&3!=4
//z[4]=999999
//-3 -1 1 999999 2--->t==2
}
}
if(z[i]!=999999){//跟上面一样:z[3]==1!=999999所以输出
printf("%d %d\n",z[i],t);
}
}
return 0;
}
这里空空如也






有帮助,赞一个