样例没过,求条玄5关
查看原帖
样例没过,求条玄5关
377044
HY_zsy_in_2024楼主2025/1/13 10:48
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+10;
ll n,y[N],l[N],r[N],L[N],R[N],b[N];
int lowbit(int i){return i&-1;}
void add(int i,int x){
	for(;i<=n;i+=lowbit(i))
	b[i]+=x;
}
int query(int i){
	int sum=0;
	for(;i>0;i-=lowbit(i))
	sum+=b[i];
	return sum;
}
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) cin>>y[i];
	for(int i=1; i<=n; i++) {
		l[i]=query(y[i]-1);
		L[i]=query(N-1)-query(y[i]);
		add(y[i],1);
	}
	memset(b,0,sizeof b);
	for(int i=n; i>0; i--) {
		r[i]=query(y[i]-1);
		R[i]=query(N-1)-query(y[i]);
		add(y[i],1);
	}
	ll s1=0,s2=0;
	for(int i=1; i<=n; i++) {
		s1+=l[i]*r[i];
		s2+=L[i]*R[i];
	}
	cout<<s2<<" "<<s1;
	return 0;
}
2025/1/13 10:48
加载中...