为什么?!
查看原帖
为什么?!
542221
KidA楼主2022/1/21 20:55
#include<iostream>
using namespace std;
int n,b,h[20005],t[20005];
void qsort(int l,int r){
    if(l>=r-1) return;
    int flag=h[rand()%(r-l)+l];
    int p=l,q=r;
    for(int i=l;i<r;i++){
        if(h[i]<flag) t[p++]=h[i];
		  else if(h[i]>flag) t[--q]=h[i];
    }
    for(int i=p;i<q;i++)
	      t[i]=flag;
    for(int i=l;i<r;i++)
        h[i]=t[i];
    qsort(l,p);
    qsort(q,r);
}
int main(){
	int sumh=0,sumn=0,k=n-1;
	cin>>n>>b;
	for(int i=0;i<n;i++) 
		cin>>h[i];
	qsort(0,n);
	while(sumh<b){
		sumh+=h[k];
		k--;
		sumn++;
	}
	cout<<sumn;
	return 0;
}

这段程序提交到洛谷上后,全WA,但在本机上测试了#1的数据后,输出却和#1的输出一致!为什么?!

2022/1/21 20:55
加载中...