Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int main()
- {
- int liczba_krysztalow=0, ilosc_paliwa=0;
- int flaga=300; //wiecej niz 200
- fstream plik;
- plik.open( "in.txt" );
- int ilosc=0;
- plik>>ilosc;
- int subX[ilosc];
- int subY[ilosc];
- int subZ[ilosc];
- for(int i=0; i<ilosc; i++)
- {
- plik>>subX[i]>>subY[i]>>subZ[i];
- }
- plik.close();
- int *** tab = new int **[101];
- for(int i=0; i<101; i++)
- {
- tab[i] = new int * [101];
- for (int j=0; j<101; j++)
- {
- tab[i][j]=new int [101];
- }
- }
- for(int i=0; i<101; i++)
- {
- for(int j=0; j<101; j++)
- {
- for(int k=0; k<101; k++)
- {
- tab[i][j][k]=flaga;
- }
- }
- }
- tab[0][0][0]=0;
- for (int i=0; i<ilosc; i++)
- {
- for(int j=100; j>=0; j--)
- {
- for(int k=100; k>=0; k--)
- {
- for(int l=100; l>=0; l--)
- {
- if(tab[j][k][l]<flaga)
- {
- 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)
- {
- tab[j+subX[i]][k+subY[i]][l+subZ[i]]=tab[j][k][l]+1;
- }
- }
- }
- }
- }
- }
- for(int i=0; i<101; i++)
- {
- if((tab[i][i][i] != flaga) && (3*i>ilosc_paliwa))
- {
- ilosc_paliwa =i*3;
- liczba_krysztalow=tab[i][i][i];
- }
- }
- if(ilosc_paliwa==0)
- {
- cout<<"NIE"<<endl;
- }
- else
- {
- cout<<ilosc_paliwa<<endl;
- cout<<liczba_krysztalow<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement