Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36000 | daimo | 【S】T2 | C++ | 解答错误 | 35 | 1729 MS | 436 KB | 1023 | 2025-02-07 14:01:21 |
#include<bits/stdc++.h> using namespace std; int n; int num[100010]; void readin(){ ios::sync_with_stdio(0); cin>>n; for(int i=1;i<=n;i++)cin>>num[i]; } void solve(){ int ans=0; for(int i=1;i<=n;i++){ int mid=num[i]; ans+=i*i*mid; priority_queue<int>q1; priority_queue<int,vector<int>,greater<int> >q2; for(int j=i+1;j<=n;j++){ if(num[j]<mid){ q1.push(num[j]); }else{ q2.push(num[j]); } if((j-i)%2==0){ if(q1.size()<q2.size()){ q1.push(mid); mid=q2.top(); q2.pop(); }else if(q1.size()>q2.size()){ q2.push(mid); mid=q1.top(); q1.pop(); } ans+=i*j*mid; } } } cout<<ans; } signed main(){ readin(); solve(); return 0; }