良好的三元组(求已排列好的数组中各个元素的排位)

#include<iostream>
#include<algorithm>
using namespace std;
long long zu=0,n,a[100000],b[100000],c[100000];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
if(a[i]!=a[i-1]) b[i]=i-1;
else b[i]=b[i-1];
}
for(int i=n;i>=1;i--)
{
if(a[i]!=a[i+1]) c[i]=n-i;
else c[i]=c[i+1];
}
for(int i=1;i<=n;i++)
{
zu+=c[i]*b[i];
}
cout<<zu;
}

 

posted @ 2019-10-17 20:49  John-C  阅读(214)  评论(0编辑  收藏  举报