没什么好的说的啦,简简单单的贪心,这几天有事情, 下次更新
# include<cstdio> # include<iostream> # include<algorithm> # include<cstring> using namespace std; # define MAX 100 struct node { int id; int time; }a[MAX]; int cmp ( const node & x,const node & y ) { return (x.time)<(y.time); } int main(void) { int n,k; while ( cin>>n>>k ) { memset(a,0,sizeof(a)); for ( int i = 1;i <= n;i++ ) { cin>>a[i].time; a[i].id = i; } sort(a+1,a+n+1,cmp); int sum = 0; int ans = 0; for ( int i = 1;i <= n;i++ ) { sum+=a[i].time; if ( sum > k) { break; } ans++; } if ( ans!=0 ) { cout<<ans<<endl; for ( int i = 1;i <= ans;i++ ) { cout<<a[i].id<<" "; } cout<<endl; } else cout<<"0"<<endl; } return 0; }