Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5.  
  6. int main()
  7. {
  8. int liczba_krysztalow=0, ilosc_paliwa=0;
  9. int flaga=300; //wiecej niz 200
  10. fstream plik;
  11. plik.open( "in.txt" );
  12. int ilosc=0;
  13. plik>>ilosc;
  14.  
  15. int subX[ilosc];
  16. int subY[ilosc];
  17. int subZ[ilosc];
  18.  
  19. for(int i=0; i<ilosc; i++)
  20. {
  21. plik>>subX[i]>>subY[i]>>subZ[i];
  22. }
  23.  
  24. plik.close();
  25.  
  26. int *** tab = new int **[101];
  27.  
  28. for(int i=0; i<101; i++)
  29. {
  30. tab[i] = new int * [101];
  31. for (int j=0; j<101; j++)
  32. {
  33. tab[i][j]=new int [101];
  34. }
  35. }
  36.  
  37. for(int i=0; i<101; i++)
  38. {
  39. for(int j=0; j<101; j++)
  40. {
  41. for(int k=0; k<101; k++)
  42. {
  43. tab[i][j][k]=flaga;
  44. }
  45. }
  46. }
  47. tab[0][0][0]=0;
  48.  
  49.  
  50. for (int i=0; i<ilosc; i++)
  51. {
  52. for(int j=100; j>=0; j--)
  53. {
  54. for(int k=100; k>=0; k--)
  55. {
  56. for(int l=100; l>=0; l--)
  57. {
  58. if(tab[j][k][l]<flaga)
  59. {
  60. if(j+subX[i]<=100 && k+subY[i]<=100 && l+subZ[i]<=100 && tab[j+subX[i]][k+subY[i]][l+subZ[i]]>tab[j][k][l]+1)
  61. {
  62. tab[j+subX[i]][k+subY[i]][l+subZ[i]]=tab[j][k][l]+1;
  63. }
  64. }
  65. }
  66. }
  67. }
  68. }
  69. for(int i=0; i<101; i++)
  70. {
  71. if((tab[i][i][i] != flaga) && (3*i>ilosc_paliwa))
  72. {
  73. ilosc_paliwa =i*3;
  74. liczba_krysztalow=tab[i][i][i];
  75. }
  76. }
  77. if(ilosc_paliwa==0)
  78. {
  79. cout<<"NIE"<<endl;
  80. }
  81. else
  82. {
  83. cout<<ilosc_paliwa<<endl;
  84. cout<<liczba_krysztalow<<endl;
  85. }
  86.  
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement