提交时间:2025-02-07 16:05:10
运行 ID: 36114
#include<bits/stdc++.h> using namespace std; int n,p[11451],ans; vector<int>v; void sort_ins(int x){ int k=v.size()-1; while(k>0&&v[k]>x)k--; v.insert(v.begin()+k+1,x); } #define rm(x) v.erase(lower_bound(v.begin(),v.end(),x)) void out(){ for(auto i:v)cout<<i<<'\n'; } int ge(int i,int j){ if(i==j)return i; vector<int>v={1,2,3}; lower_bound(v.begin(),v.end(),3); } int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); //freopen("book.in","r",stdin),freopen("book.out","w",stdout); cin>>n; for(int i=1;i<=n;i++)cin>>p[i]; for(long long i=1;i<=n;i++)ans+=(i*i%998244353ll*i%998244353ll); for(int l=3;l<=n;l+=2){ v.clear(); for(int i=1;i<=l;i++)sort_ins(p[i]); ans+=l*v[l/2]%998244353; for(int i=2,j=i+l-1;j<=n;i++,j++){ rm(p[i-1]),sort_ins(p[j]); ans+=(i*j%998244353)*(v[l/2]%998244353)%998244353; } } cout<<ans; return 255; }