이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include"bits/stdc++.h"
using namespace std;
#define ll long long
#define endl "\n"
#define fastio ios_base::sync_with_stdio(false)
#define inf LLONG_MAX
const int lmt=1e5+10;
int mx[4*lmt],pre[lmt];
void update(int at,int L,int R,int pos,int val){
if(L==R){
mx[at]=val;
return;
}
int mid=(L+R)>>1;
if(pos<=mid) update(at*2,L,mid,pos,val);
else update(at*2+1,mid+1,R,pos,val);
mx[at]=max(mx[at*2],mx[at*2+1]);
}
int query(int at,int L,int R,int l,int r){
if(r<L || R<l || r<l) return 0;
if(l<=L && R<=r) return mx[at];
int mid=(L+R)>>1;
int x=query(at*2,L,mid,l,r),y=query(at*2+1,mid+1,R,l,r);
return max(x,y);
}
int main(){
fastio;
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
int x;
cin>>x;
update(1,1,n,i,x);
pre[i]=pre[i-1]+x;
}
ll ans=inf;
for(int i=0;i<=k-1;i++){
ll tot=pre[i]+pre[n]-pre[n-k+1+i]+query(1,1,n,i+1,n-k+1+i);
ans=min(ans,tot);
}
cout<<ans<<endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |