Advertisement
Guest User

Untitled

a guest
Jan 25th, 2015
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. void P2C_max::dynamiczne()
  2. {
  3.     int suma = 1,
  4.     q = 0,
  5.     naj = 0,
  6.     x = 0;
  7.  
  8.     for(int i = 0; i < liczba_zadan; i++)
  9.         suma += tablica[i];
  10.  
  11.     int M[liczba_zadan][suma];
  12.  
  13.     for(int i = 0; i < liczba_zadan; i++)
  14.     {
  15.         for (int j = 0; j < suma; j++)
  16.         {
  17.             M[i][j] = 0;
  18.         }
  19.     }
  20.     for(int i = 0; i < liczba_zadan; i++)
  21.     {
  22.         for (int j = 0; j < suma; j++)
  23.         {
  24.             if(i==0)
  25.             {
  26.                 M[0][0] = 1;
  27.                 M[0][tablica[i]]=1;
  28.             }
  29.             else
  30.             {
  31.                 if(M[i-1][j]==1 or M[i-1][j-tablica[i]]==1)
  32.                 {
  33.                     M[i][j]=1;
  34.                 }
  35.  
  36.                 M[i][tablica[i]]=1;
  37.                 M[i][tablica[i]+tablica[i-1]]=1;
  38.             }
  39.             if(i == liczba_zadan-1 and j == suma-1)
  40.             {
  41.                 naj = suma/MASZYNY;
  42.                 if(M[i][naj]==1)
  43.                 {
  44.                     najlepsza_trasa = naj;
  45.                 }
  46.                 else
  47.                 {
  48.                     while(naj--)
  49.                     {
  50.                         if(M[i][naj]==1)
  51.                         {
  52.                             najlepsza_trasa = naj;
  53.                             break;
  54.     }}}
  55.     }}
  56.     }
  57.  
  58.     x = najlepsza_trasa;
  59.  
  60.     for(int i = liczba_zadan-1; i >= 0; i--)
  61.     {
  62.         if(i == 0)
  63.         {
  64.             if(x==i)
  65.                 q = 1;
  66.             else
  67.                 q = 0;
  68.         }
  69.     else
  70.     {
  71.         if(M[i-1][x] == 1)
  72.         {
  73.             q = 1;
  74.         }
  75.         else if (M[i-1][x-tablica[i]] == 1)
  76.         {
  77.             q = 0;
  78.             x -= tablica[i];
  79.         }
  80.     }
  81.     trasa[i] = q;
  82.     }
  83.     for(int i = 0; i<liczba_zadan; i++)
  84.     sciezka[i]=trasa[i];
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement