社区讨论

40分求调

P2676[USACO07DEC] Bookshelf B参与者 4已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lzuzpkhx
此快照首次捕获于
2024/08/15 15:59
2 年前
此快照最后确认于
2024/08/15 16:11
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;

int a[20001],n,m,s,t;

void quick(int left,int right){
	int i,j;
	i=left;
	j=right;
	int mid=left+right>>1;
	while(i<=j){
		while(a[i]<a[mid]) i++;
		while(a[j]>a[mid]) j--;
		if(i<=j){
			swap(a[i],a[j]);
			i++;
			j--;
		}	
	} 
	if(j>=left) quick(left,j);
	if(i<=right) quick(i,right);
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	quick(0,n-1);
	for(int i=n-1;i>=0;i--){
	
		t=t+a[i];
		s++;
		if(t>m){
			cout<<s;
			break;
		}
	} 

	return 0;
}


回复

3 条回复,欢迎继续交流。

正在加载回复...