月离 @ 2019-10-12 15:48:18
调疯了,一直只有60分
数据点下载没有换行所以找不出错来
qwq害怕再交会被“浪费评测资源”
#include<bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
int n,k;
int a[100010];
int f[100010];
int read(){
int s=0;
char c=getchar();
while(c>57||c<48) c=getchar();
while(47<c&&c<58) {
s=s*10;
s=s+c-48;
c=getchar();
}
return s;
}
struct Node{
ll x;
int id;
bool operator<(const Node &a)const{
return x>a.x;
}
};
priority_queue<Node>q;
inline int minn(int a,int b){
return a>b?b:a;
}
inline int maxx(int a,int b){
return a>b?a:b;
}
int main(){
n=read();
k=read();
int sum=0;
for(int i=1;i<=n;i++){
a[i]=read();
sum+=a[i];
}
for(re int i=1;i<=n+1;i++){
q.push((Node){f[i-1],i-1});
while(q.top().id<i-k-1)q.pop();
int p=q.top().x;
f[i]=p+a[i];
}
ll ans=sum-f[n+1];
printf("%lld",ans);
return 0;
}
by 梧桐灯 @ 2019-10-12 15:49:53
@月离 为什么f不用long long
by MoXiaodu @ 2019-10-12 15:55:10
用写字板别用记事本就有换行惹
by 月离 @ 2019-10-12 16:00:09
@光随影走 然开了ll也没用
by 梧桐灯 @ 2019-10-12 16:04:17
@月离 你不仅仅是f没开long long呀QwQ,你把所有可能爆int都改为long long试试(反正我改过后A掉了,用你的code)
by encore @ 2019-10-12 16:04:54
@月离 是T了还是WA了?我记得我是用单调队列做的
by Provicy @ 2019-10-12 16:05:34
您显然没开longlong而WA掉了
by 月离 @ 2019-10-12 16:15:15
谢谢大家,显然是没开ll的原因 XD