QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#953536 | #10220. Picturesque Skyline | hhhgjy | WA | 166ms | 42720kb | C++20 | 816b | 2025-03-27 21:00:30 | 2025-03-27 21:00:31 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define N 10005
const int B=100;
int n,a[N],ct[N],ct1[N],d[N],tt;
int f[N][N],g[N];
void slv(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>a[i],g[i]=1e9;
for(int k=1;k<=n;++k)f[i][k]=1e9;
}
g[0]=0;
for(int i=1;i<=n;++i){
for(int k=0;k<=n;++k)ct[k]=ct1[k]=0;
int mx=0;
for(int j=i;j<=min(i+B,n);++j){
for(int k=i;k<j;++k){
if(a[k]<a[j])++ct1[k];
else ++ct[j];
}
mx=max(mx,a[j]);
if((i^j)&1)continue;
if(i==j)continue;
tt=0;int s=0;
for(int k=i;k<=j;++k)if(a[k]!=mx)s+=ct1[k],d[++tt]=ct[k]-ct1[k];
sort(d+1,d+tt+1);
for(int k=1;k<=tt/2;++k)s+=d[k];
g[j]=min(g[j],g[i-1]+s);
}
}
cout<<g[n]<<endl;
}
int main() {
ios::sync_with_stdio(0);
int t;cin>>t;
while(t--)slv();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3840kb
input:
4 3 1 3 2 6 1 2 4 8 16 32 5 1 2 3 4 5 7 6 4 2 1 3 5 7
output:
0 2 3 9
result:
ok 4 lines
Test #2:
score: -100
Wrong Answer
time: 166ms
memory: 42720kb
input:
10 1000 1387006 1849130 3142445 4286557 8454496 12729744 12851090 12922927 13529136 13801515 16497484 18988046 22387865 22451673 22964870 24979445 27172325 35553226 38233807 40309279 43222378 45411991 45480206 51693604 51853974 57504350 64692967 67181740 70422962 73141342 76819930 76823620 77987836 ...
output:
258 220 260 246 271 230 250 225 241 229
result:
wrong answer 1st lines differ - expected: '0', found: '258'