Advertisement
Sunt_tare

Untitled

Nov 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. ifstream fin("sumtri1.in");
  5. ofstream fout("sumtri1.out");
  6. int a[105][105],b[105][105],n,k=1,v[100005] , drum[105] , compi = 1;
  7. int minim()
  8. {
  9.     int i,mini=1000;
  10.     for(i=1;i<=n;i++)
  11.         if(b[n][i]<mini)mini=b[n][i];
  12.     return mini;
  13. }
  14. int main()
  15. {
  16.     int i,j , mini = 1000*1000*1000 , poz;
  17.     fin>>n;
  18.     for(i=1;i<=n;i++){
  19.         for(j=1;j<=i;j++){
  20.             fin>>a[i][j];
  21.         }
  22.     }
  23.     for(i=0;i<=n+1;i++){
  24.         for(j=0;j<=i+1;j++){
  25.             if(i<1||i>n||j<1||j>i)a[i][j]=1001,b[i][j] = 1001;
  26.         }
  27.     }
  28.     b[1][1]=a[1][1];
  29.     v[1]=a[1][1];
  30.     for(i=2;i<=n;i++){
  31.         for(j=1;j<=i;j++){
  32.             if(b[i-1][j-1]>b[i-1][j]){
  33.                 b[i][j]=b[i-1][j]+a[i][j];
  34.                 //v[++k]=b[i-1][j];
  35.             }
  36.             else{
  37.                 b[i][j]=b[i-1][j-1]+a[i][j];
  38.                 //v[++k]=b[i-1][j-1];
  39.             }
  40.         }
  41.     }
  42.     /*
  43.     for(int i=1;i<=n;i++)
  44.     {
  45.         for(int j=1;j<=i;j++)
  46.         {
  47.             cout << b[i][j] << " ";
  48.         }
  49.         cout << '\n';
  50.     }
  51.     */
  52.     for(int i=1;i<=n;i++)
  53.     {
  54.         if(b[n][i]<mini)
  55.         {
  56.             mini = b[n][i];
  57.             poz = i;
  58.         }
  59.     }
  60.     drum[compi] = poz;
  61.     for(int i=n-1;i>=1;i--)
  62.     {
  63.         if(b[i][drum[compi]]==b[i+1][drum[compi]] - a[i+1][drum[compi]])
  64.         {
  65.             drum[++compi] = drum[compi-1];
  66.         }
  67.         else
  68.         {
  69.             drum[++compi] = drum[compi-1] - 1;
  70.         }
  71.     }
  72.     fout << b[n][poz] << '\n';
  73.     k = 1;
  74.     for(int i=1;i<=n;i++)
  75.     {
  76.         fout << a[i][drum[compi--]] << " ";
  77.     }
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement