#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int a[MAXN],b[MAXN],c[MAXN];
int n,sum;
int main(){
//freopen("1.txt","r",stdin);
cin>>n;
for(int i=0;i<n;i++)scanf("%d",&a[i]);
for(int i=0;i<n;i++)scanf("%d",&b[i]);
for(int i=0;i<n;i++)scanf("%d",&c[i]);
sort(a,a+n);
sort(b,b+n);
sort(c,c+n);
sum = 0;
int cnt1=0,cnt2=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(a[j]<b[i])cnt1++;
if(c[j]>b[i])cnt2++;
}
sum += cnt1*cnt2;
cnt1=cnt2=0;
}
cout<<sum;
return 0;
}
以b[]数组中的每个数字为 参考(之里是分步乘法)
在a[]数组中找<b[i]的个数
在c[]数组中找>b[i]的个数
再运用分类加法,将每次sum加起来
代码简洁易懂,老少皆宜
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)