搞清楚怎么样贪心就可以了,The Pancakes跟小朋友合照的顺序应该和各个小朋友所需的积木数(从小到大)的顺序一致。
#include<stdio.h>
struct std {
int a;
int b;
};
int main()
{
int n,s,i,j;
struct std a[12000];
struct std mid;
while ( scanf( "%d",&n )&&n!=0 ) {
scanf( "%d",&s );
for ( i=0;i<n;i++ ) {
scanf( "%d%d",&a[i].a,&a[i].b );
}
for ( i=0;i<n;i++ ) {
for ( j=0;j<n-i-1;j++ ) {
if ( a[j].b>a[j+1].b ) {
mid=a[j];
a[j]=a[j+1];
a[j+1]=mid;
}
}
}
for ( i=0;i<n;i++ ) {
if ( s<a[i].b ) {
break;
}
else {
s=s+a[i].a;
}
}
if ( i==n ) {
printf( "YES\n" );
}
else {
printf( "NO\n" );
}
}
return 0;
}