QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#140234 | #5507. Investors | PhantomThreshold# | WA | 7ms | 9732kb | C++20 | 1.1kb | 2023-08-15 15:34:42 | 2023-08-15 15:34:45 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define int long long
using namespace std;
const int maxn = 6010;
int n,K;
int a[maxn];
int pr[maxn][maxn],cost[maxn][maxn];
struct node
{
ll c;
int k;
}f[maxn];
void dp(const ll mid)
{
f[n+1]=(node){0,0};
for(int i=n;i>=1;i--)
{
f[i]=(node){cost[i][n],0};
for(int j=i;j<n;j++)
{
node temp=(node){f[j+1].c+cost[i][j]+mid,f[j+1].k+1};
if( f[i].c>temp.c || (f[i].c==temp.c&&f[i].k<temp.k) )
f[i]=temp;
}
}
}
signed main()
{
ios_base::sync_with_stdio(false);
int Tcase; cin>>Tcase;
while(Tcase--)
{
cin>>n>>K;
for(int i=1;i<=n;i++) cin>>a[i];
for(int r=1;r<=n;r++)
{
pr[r][r]=0;
for(int l=r-1;l>=1;l--)
pr[r][l]=pr[r][l+1]+(a[l]>a[r]);
}
for(int l=1;l<=n;l++)
{
cost[l][l]=0;
for(int r=l+1;r<=n;r++)
cost[l][r]=cost[l][r-1]+pr[r][l];
}
int inf=(n/2)*(n-n/2);
ll l=-inf,r=inf;
while(l<=r)
{
ll mid=l+(r-l)/2;
dp(mid);
if(f[1].k>=K) l=mid+1;
else r=mid-1;
}
dp(l-1);
cout<<f[1].c-(l-1)*K<<'\n';
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 7520kb
input:
2 6 1 4 5 6 2 2 1 6 2 4 5 6 2 2 1
output:
2 0
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 7ms
memory: 9732kb
input:
349 6 2 2 1 2 1 2 1 48 12 42 47 39 39 27 25 22 44 45 13 5 48 38 4 37 6 24 10 42 38 12 37 31 19 44 6 29 17 7 12 7 26 35 24 15 9 37 3 27 21 33 29 34 20 14 30 31 21 48 12 1 43 17 46 17 39 40 22 25 2 22 12 4 11 38 12 4 11 1 5 39 44 37 10 19 20 42 45 2 45 37 20 48 34 16 41 23 18 13 44 47 21 29 4 23 18 16...
output:
1 18 15 145 0 2 1 0 13 13 23 0 0 0 1 0 0 0 0 0 0 0 0 161 3 0 0 1 0 5 0 0 0 0 1 5 3 0 0 1 0 0 1 0 0 1 4 0 0 0 0 0 0 0 0 2 0 2 0 5 8 280 0 0 34 4 0 1 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 2 0 0 0 0 0 0 0 8 1 8 0 0 0 0 1 11 5 0 0 0 6 0 5 0 0 0 1 0 0 0 0 0 0 1 0 0 5 0 0 0 0 13 1 0 0 0 ...
result:
wrong answer 30th lines differ - expected: '0', found: '5'