(不懂为什么题解里面暴力只能过Sub1
暴力不是O((t-l+1)l)吗,就是每次维护窗口内最高的地鼠然后打一下,但是还是挂了()
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
long long int a[maxn];
int main()
{
ios::sync_with_stdio(false);
int l,t;
cin>>l>>t;
for(int i=1;i<=t;i++)
{
cin>>a[i];
}
unsigned long long int ans=0;
long long int maxd=0,maxi=0;
for(int i=1;i<=t-l+1;i++)
{
maxd=maxi=0;
for(int j=i;j<i+l;j++)
{
if(a[j]>maxd)
{
maxd=a[j];
maxi=j;
}
}
// cout<<"maxd"<<maxd<<"maxi"<<maxi<<endl;
if(maxi!=0)
{
ans+=maxd;
a[maxi]--;
}
cout<<ans<<" ";
}
return 0;
}
/*
5 10
5 10
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
10 10
1 3 1 1 1 1 1 1 5 1
*/