马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <bits/stdc++.h>
using namespace std;
const int N=1e5;
typedef long long ll;
int a[N],b[N],c[N],cnt[N],s[N],aa[N],cc[N];
ll res;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i],a[i]++; //可以取到0,所以要注意边界问题
for(int i=1;i<=n;i++)cin>>b[i],b[i]++;
for(int i=1;i<=n;i++)cin>>c[i],c[i]++;
for(int i=1;i<=n;i++)s[a[i]]++;
for(int i=1;i<=N;i++)s[i]+=s[i-1];
for(int i=1;i<=n;i++)aa[i]=s[b[i]-1];
memset(s,0,sizeof(s));
for(int i=1;i<=n;i++)s[c[i]]++;
for(int i=1;i<=N;i++)s[i]+=s[i-1];
for(int i=1;i<=n;i++)cc[i]=s[N-1]-s[b[i]];
for(int i=1;i<=n;i++) res+=(ll)aa[i]*cc[i];
cout<<res<<endl;
}
题目链接:https://www.luogu.com.cn/problem/P8667 |