题解
2025-08-31 22:20:24
发布于:江苏
8阅读
0回复
0点赞
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
int first,second;
};
bool cmp(node a,node b){
return a.first<b.first;
}
int main(){
int n;
cin>>n;
vector<node>a(n);
for(int i=0;i<n;i++){
cin>>a[i].first;
a[i].second=i+1;
}
sort(a.begin(),a.end(),cmp);
long long sum=0,st=a[0].first,nd=a[0].second;
for(int i=1;i<n;i++){
if(a[i].first==st){
nd^=a[i].second;
}else{
sum+=(long long)st*nd;
st=a[i].first;
nd=a[i].second;
}
}
sum+=(long long)st*nd;
cout<<sum;
return 0;
}
这里空空如也
有帮助,赞一个