

CODE:
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node{
int d;
int y;
double c;
bool operator<(const node&x)const{
return c<x.c;
}
};
signed main(){
int n,m;
cin>>n>>m;
vector<node>ca(m);
for(int i=0;i<m;i++) {
cin>>ca[i].y;
ca[i].d=i+1;
ca[i].c=(double)ca[i].y/ca[i].d;
}
sort(ca.begin(),ca.end());
int ta=0;
int t=0;
for(auto&z:ca) {
if(ta+z.d<=n){
ta+=z.d;
t+=z.y;
}else{
int r=n-ta;
t+=r*z.c;
break;
}
}
cout<<t<<endl;
return 0;
}
此代码只有18pts