Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36139 | j136 | 【S】T2 | C++ | 运行出错 | 0 | 1 MS | 508 KB | 993 | 2025-02-07 17:26:55 |
#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 0; }