fork(34) download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int liczba=0,ilosc=0,wysokosc=0,suma=0, liczba2=0, element=0, j=0;
  5. bool b;
  6. vector <int> v;
  7. int check(int x, int liczba2)
  8. {
  9. if(x==-1) return 0;
  10. if(v[x]<=liczba2)
  11. {
  12. liczba2 -= v[x];
  13. if(liczba2==0) return 1;
  14. check(x-1,liczba2);
  15. }
  16. else check(x-1,liczba2);
  17. }
  18.  
  19. main()
  20. {
  21. ios_base::sync_with_stdio(0);
  22. while(cin >> liczba)
  23. {
  24. cin >> ilosc;
  25. if(liczba>0 && ilosc==0) b=false;
  26. else
  27. if(liczba==0 && ilosc==0) b=true;
  28. else
  29. {
  30. for(j=0; j<ilosc; j++)
  31. {
  32. cin >> wysokosc;
  33. if(wysokosc<=liczba) { v.push_back(wysokosc); suma += wysokosc; element++;}
  34. }
  35. if(suma==liczba) b=true;
  36. else
  37. if(suma<liczba) b=false;
  38. else
  39. {
  40. for(j=element-1; j>=0; j--)
  41. {
  42. liczba2=liczba;
  43. if(j==0) { b=false; break; }
  44. if(check(j,liczba2)==1) { b=true; break; }
  45. }
  46. }
  47. }
  48. cout << b ;
  49. cout <<endl;
  50. liczba=0,ilosc=0,wysokosc=0,suma=0,liczba2=0, element=0, j=0;
  51. }
  52. return 0;
  53. }
Success #stdin #stdout 0.02s 2820KB
stdin
5 20 14 21 2 8 11 9 21 6 9 12 24 21 24 18 18 9 0 13 0 2
stdout
Standard output is empty