how C
  • 板块学术版
  • 楼主Yu_Yaoxuan
  • 当前回复5
  • 已保存回复6
  • 发布时间2025/7/27 17:41
  • 上次更新2025/7/27 21:34:34
查看原帖
how C
1643757
Yu_Yaoxuan楼主2025/7/27 17:41

想到二分答案写不出check,遂写个暴力

#include<bits/stdc++.h>
using namespace std;
#define int long long
priority_queue<int,vector<int>,greater<int> > qwq;
int n,k;
signed main(){
	cin.tie(0)->sync_with_stdio(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		int tmp;
		cin>>tmp;
		qwq.push(tmp);
	}
	int ans=1;
	while((int)qwq.size()==n){
		vector<int> vec;
		for(int i=1;i<=k;i++){
			int fn=qwq.top();
			qwq.pop();
			vec.push_back(fn+1);
		}
		for(int i=0;i<(int)vec.size();i++){
//			cout<<vec[i]<<'\n';
			qwq.push(vec[i]);
		}
//		cout<<qwq.top()<<'\n';
		if(qwq.top()<=ans){
			cout<<ans-1<<'\n';
			return 0;
		}
		ans++;
	}
	return 0;
}

80pts,最后两点T飞

2025/7/27 17:41
加载中...