#include<bits/stdc++.h>
using namespace std;
struct node{
int val,pl;
}a[(int)2e5+10];
int num[(int)2e5+10];
bool flag[(int)2e5+10];
bool cmp(node x,node y){
return x.val>y.val;
}
int main(){
int k;
cin>>k;
while(k--){
memset(flag,false,sizeof(flag));
int n,m,ans=0,cnt=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>num[i];
a[i].pl=i;
a[i].val=num[i]-(n-i);;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++){
flag[a[i].pl]=true;
}
for(int i=1;i<=n;i++){
if(flag[i]){
cnt++;
continue;
}
ans+=num[i]+cnt;
}
cout<<ans<<endl;
}
return 0;
}
我也不知道哪里错了调整了之前的代码后,(之前样例都没过)从点二开始WA,样例过了(这种题都能卡这么久,我太弱了)