QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#769302 | #8050. Random Permutation | DaiRuiChen007 | RE | 0ms | 0kb | C++17 | 588b | 2024-11-21 17:02:40 | 2024-11-21 17:02:46 |
answer
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MAXN=3e5+5;
int a[MAXN],w[MAXN<<1];
int f(double e) { return max(15./e/e,100.); }
signed main() {
int n; ll ans=0;
scanf("%d",&n);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
for(int i=1;i<=n;++i) {
int rd=2*i==n?n:f(abs(0.5-1.*i/n));
int l=max(1,i-rd+1),r=min(n,i+rd-1),len=l-i+1;
for(int j=i,s=n;j>=l;--j) s+=a[j]>a[i]?1:-1,++w[s];
for(int j=i,s=n+1;j<=r;++j) s+=a[j]>a[i]?1:-1,ans+=1ll*a[i]*(w[2*n-s]+w[2*n-1-s]);
fill(w+n-len,w+n+len+1,0);
}
printf("%lld\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
4 1 4 2 3