Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream f ("smax.in");
- ofstream g ("smax.out");
- short int n,A[101][101][101],D[101][101][101];
- void citeste()
- {
- f>>n;
- for(short int i=1;i<=n;i++)
- for(short int j=1;j<=n;j++)
- for(short int k=1;k<=n;k++)
- {
- f>>A[i][j][k];
- }
- }
- void rezolva()
- {
- short int i,j,k;
- for(i=n;i>=1;i--)
- for(j=n;j>=1;j--)
- for(k=n;k>=1;k--)
- D[i][j][k]=A[i][j][k]+max(max(D[i+1][j][k],D[i][j+1][k]),D[i][j][k+1]);
- g<<3*n-2<<'\n'<<D[1][1][1]<<'\n';
- i=j=k =1;
- g<<i<<' '<<j<<' '<<k<<'\n';
- do
- {
- if(k!=n&&D[i][j][k]-A[i][j][k]==D[i][j][k+1])
- k++;
- else
- if(j!=n&&D[i][j][k]-A[i][j][k]==D[i][j+1][k])
- j++;
- else
- i++;
- g<<i<<' '<<j<<' '<<k<<'\n';
- }
- while(i!=n||j!=n||k!=n);
- }
- int main()
- {
- citeste();
- rezolva();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement