比赛时脑抽用了个快读然后就挂了只得了10分然后换成cin就100分了,所以蒟蒻想知道错哪儿了
#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y){
return x>y;
}
long long n,a[1000005],w,s,c,s1,ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n,cmp);
cin>>w;
for(int i=1;i<=n;i++) if(w>=a[i]){c=a[i];break;}
for(int i=n+1;i>=1;i--)
{
s1+=a[i];
if(s1==c||s1+a[i-1]>c)
{
cout<<ans;
return 0;
}
else ans++;
}
cout<<ans;
}
代码
inline char ftgetc(){
static char s[1000000],*p=s+1000000,*pend=s+1000000;
if (p==pend){
p=s;
fread(s,1,1000000,stdin);
}
return *p++;
}
inline int read(){
register int n(0),c(ftgetc());
while (48>c||c>57) c=ftgetc();
while (48<=c&&c<=57){
n=(n<<1)+(n<<3)+(c^48);
c=ftgetc();
}
return n;
}
快读