【违规自杀】随机RE
查看原帖
【违规自杀】随机RE
119261
7KByte楼主2021/5/8 20:27

Rt,同样代码交了三发得到三个不同的 RE 结果

诡异的评测记录

https://www.luogu.com.cn/record/50435927

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define pre(i,a,b) for(int i=a;i>=b;i--)
#define N 100005
#define int long long
using namespace std;
priority_queue<pair<int,int> >q;
int n,k;
signed main(){
	scanf("%lld%lld",&n,&k);
	rep(i,1,n){
		int x;scanf("%lld",&x);
		q.push(make_pair(-x,0));
	}
	int ans=0,mx=0;
	if((n-1)%(k-1)!=0){
		int res=(n-1)%(k-1)+1;
		int sum=0,cur=0;
		rep(i,1,res){
			sum-=q.top().first,cur=max(cur,-q.top().second);
			q.pop();
		}
		mx=max(mx,cur+1);ans+=sum;
		q.push(make_pair(-sum,-cur-1));
	}
	while(q.size()>1){
		int sum=0,cur=0;
		rep(i,1,k){
			sum-=q.top().first,cur=max(cur,-q.top().second);
			q.pop();
		}
		mx=max(mx,cur+1);ans+=sum;
		q.push(make_pair(-sum,-cur-1));
	}
	printf("%lld\n%lld\n",ans,mx);
	return 0;
}
2021/5/8 20:27
加载中...