fork(3) download
  1. //Spoj --- Int. Przeprowadzka
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. long long ILOSC_TESTOW = 0, ilExponatow, MaxWaga_w_Pudelku, MIN_Ilosc_Pudelek(0);
  9. cin>>ILOSC_TESTOW;
  10.  
  11. while(ILOSC_TESTOW!=0)
  12. {
  13. cin>>ilExponatow>>MaxWaga_w_Pudelku;
  14. int* WagiExpon = new int[ilExponatow];
  15. int* Tymczasowa_Zmienna_0 = new int[3];
  16. Tymczasowa_Zmienna_0[0] = 0;
  17. Tymczasowa_Zmienna_0[1] = 0;
  18. Tymczasowa_Zmienna_0[2] = 0;
  19. //Zapelnienie tablicy wartosci wag eksponatow
  20. for (int i = 0; i<ilExponatow; i++)
  21. {
  22. cin>>WagiExpon[i];
  23. }
  24.  
  25. //Wyszukiwanie maksymalnej wagi rownej max pojemnosci pude³ka
  26. if(MaxWaga_w_Pudelku!=0)
  27. {
  28. for (int j = 0; j<ilExponatow; j++)
  29. {
  30. if(WagiExpon[j] == MaxWaga_w_Pudelku)
  31. {
  32. MIN_Ilosc_Pudelek++;
  33. WagiExpon[j] = 0;
  34. }
  35. }
  36. }
  37. else
  38. MIN_Ilosc_Pudelek = 0;
  39. unsigned short A(ilExponatow-1);
  40. while(A!=0)
  41. {
  42. for (int j = 0; j<(ilExponatow-1); j++)
  43. {
  44. for(int k = j+1; k<ilExponatow; k++)
  45. {
  46. if(Tymczasowa_Zmienna_0[0]<(WagiExpon[j]+ WagiExpon[k]) && (WagiExpon[j]+ WagiExpon[k])<=MaxWaga_w_Pudelku)
  47. {
  48. Tymczasowa_Zmienna_0[0] = WagiExpon[j] + WagiExpon[k];
  49. Tymczasowa_Zmienna_0[1] = j;
  50. Tymczasowa_Zmienna_0[2] = k;
  51. }
  52. }
  53. }
  54. WagiExpon[Tymczasowa_Zmienna_0[1]] = 0;
  55. WagiExpon[Tymczasowa_Zmienna_0[2]] = 0;
  56. if(Tymczasowa_Zmienna_0[0] != 0)
  57. {
  58. MIN_Ilosc_Pudelek++;
  59. }
  60. else break;
  61. Tymczasowa_Zmienna_0[0] = 0;
  62. A--;
  63. }
  64. cout << MIN_Ilosc_Pudelek << endl;
  65. MIN_Ilosc_Pudelek = 0;
  66. delete [] WagiExpon;
  67. delete [] Tymczasowa_Zmienna_0;
  68. --ILOSC_TESTOW;
  69. }
  70. return 0;
  71. }
  72.  
Success #stdin #stdout 0s 4180KB
stdin
1
1 0
0
stdout
0