【排序】朋友
作者:互联网
思路
将俩种人混在一起排序。然后存下希望想和大佬交朋友的人数,碰上一个想和蒟蒻交朋友的就加上。
#include<cstdio>
#include<algorithm>
using namespace std;
struct asdf{
int z,pd;
} a[40005];
bool cmd(asdf aa,asdf bb){//从小到大,且想和大佬的往后排,这样可以避免重分交朋友
if(aa.z<bb.z) return 1;
if(aa.z==bb.z&&aa.pd==0) return 1;
return 0;
}
int n,m,j,ans;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){
scanf("%d",&a[i].z);
a[i].pd=0;
}
for(int i=1;i<=m;++i){
scanf("%d",&a[n+i].z);
a[i+n].pd=1; //标记是那种人
}
sort(a+1,a+n+m+1,cmd);
for(int i=1;i<=n+m;++i){
if(a[i].pd) j++; //如果想和大佬交朋友
else ans+=j; //可以和前面的想和大佬交朋友的人交朋友。。。
}
printf("%d",ans);
}
标签:aa,include,朋友,大佬,排序,交朋友,asdf 来源: https://blog.csdn.net/qq_42937087/article/details/89417784