fork download
  1. #include<iostream>
  2. #define SIZE 1000
  3. #define READ(array,n) int i;for(i=0;i<n;i++) cin>>array[i];
  4. #define MAX(array,n) int max=array[0],pos=0;for(i=1;i<n;i++) if(array[i] >max) {max=array[i]; pos=i;}
  5. using namespace std;
  6. int main()
  7. {
  8. int t,s=1,l,n,count,c;
  9. int array[SIZE];
  10. cin>>t;
  11. while(t--)
  12. {
  13. cin>>l>>n;
  14. READ(array,n);
  15. cout<<"Scenario #"<<s++<<endl;
  16. c=n;
  17. count=0;
  18. while(l>0)
  19. {
  20. --c;
  21. //if(!c)break;
  22. MAX(array,n);
  23. array[pos]=0;
  24. l-=max;
  25. ++count;
  26. }
  27. if(l<=0)
  28. cout<<count<<endl<<endl;
  29. else
  30. cout<<"impossible"<<endl<<endl;
  31. }
  32. return 1;
  33. }
  34.  
Time limit exceeded #stdin #stdout 5s 3300KB
stdin
3
100 6
13 17 42 9 23 57
99 6
13 17 42 9 23 57
1000 3
314 159 265
stdout
Scenario #1
3

Scenario #2
2

Scenario #3