Advertisement
Guest User

POBO

a guest
Mar 18th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.06 KB | None | 0 0
  1. // next_permutation example
  2. #include <iostream>     // std::cout
  3. #include <algorithm>    // std::next_permutation, std::sort
  4.  
  5. int main () {
  6.     int myints[] = {1,2,3,4,5,6};
  7.     int  i=0;
  8.     int czas=0;
  9.     int minCzas=1000;
  10.     int tabM1[6];         // czasy wykonywania sie zadan na maszynie 1
  11.     int tabM2[6];         // czasy wykonywania sie zadan na maszynie 2
  12.     int kolejnosc[6];     // kolejnosc wykonywnia sie zadan
  13.     int indeks=0;         // najbardziej optymalna kolejnosc
  14.  
  15.     std::cout << "Podaj czas wykonywana sie zadan od 1 o 6 na maszynie 1.\n";
  16.     for(int k=0; k<6; k++)
  17.     {
  18.         std::cout << "Czas wykonania zadania"<<' '<<k+1<<":";
  19.         std::cin >> tabM1[k];
  20.     }
  21.  
  22.     std::cout << "Podaj czas wykonywana sie zadan od 1 o 6 na maszynie 2.\n";
  23.     for(int k=0; k<6; k++)
  24.     {
  25.         std::cout << "Czas wykonania zadania"<<' '<<k+1<<":";
  26.         std::cin >> tabM2[k];
  27.     }
  28.     std::cout<<"\n";
  29.     std::cout << "Czasy na maszynie 1: \n";
  30.     for(int k=0; k<6; k++)
  31.     {
  32.         std::cout << tabM1[k] << " ";
  33.     }
  34.     std::cout << "\nCzasy na maszynie 2: \n";
  35.     for(int k=0; k<6; k++)
  36.     {
  37.         std::cout << tabM2[k] << " ";
  38.     }
  39.     std::cout<<"\n";
  40.  
  41.     std::sort (myints,myints+6);
  42.  
  43.     std::cout << "The 6! possible permutations with 6 elements:\n";
  44.     do {
  45.         i++;
  46.         // Wyliczenie czasu wykonania sie wsyztstkich zadan
  47.             int koniecZ1M1, koniecZ2M1,koniecZ3M1,koniecZ4M1,koniecZ5M1,koniecZ6M1;    // wg kolejnosci wykonywania
  48.             int koniecZ1M2, koniecZ2M2,koniecZ3M2,koniecZ4M2,koniecZ5M2,koniecZ6M2;    // wg kolejnosci wykonywania
  49.  
  50.         koniecZ1M1 = tabM1[myints[0]-1];
  51.         koniecZ2M1 = koniecZ1M1 + tabM1[myints[1]-1];
  52.         koniecZ3M1 = koniecZ2M1 + tabM1[myints[2]-1];
  53.         koniecZ4M1 = koniecZ3M1 + tabM1[myints[3]-1];
  54.         koniecZ5M1 = koniecZ4M1 + tabM1[myints[4]-1];
  55.         koniecZ6M1 = koniecZ5M1 + tabM1[myints[5]-1];
  56.  
  57.  
  58.         koniecZ1M2 = koniecZ1M1 + tabM2[myints[0]-1];
  59.  
  60.         if(koniecZ2M1 < koniecZ1M2)
  61.         {
  62.             koniecZ2M2 = koniecZ1M2 + tabM2[myints[1]-1];
  63.         }
  64.         else
  65.         {
  66.             koniecZ2M2= koniecZ2M1 + tabM2[myints[1]-1];
  67.         }
  68.  
  69.         if(koniecZ3M1 < koniecZ2M2)
  70.         {
  71.             koniecZ3M2 = koniecZ2M2 + tabM2[myints[2]-1];
  72.         }
  73.         else
  74.         {
  75.             koniecZ3M2= koniecZ3M1 + tabM2[myints[2]-1];
  76.         }
  77.  
  78.         if(koniecZ4M1 < koniecZ3M2)
  79.         {
  80.             koniecZ4M2 = koniecZ3M2 + tabM2[myints[3]-1];
  81.         }
  82.         else
  83.         {
  84.             koniecZ4M2= koniecZ4M1 + tabM2[myints[3]-1];
  85.         }
  86.  
  87.         if(koniecZ5M1 < koniecZ4M2)
  88.         {
  89.             koniecZ5M2 = koniecZ4M2 + tabM2[myints[4]-1];
  90.         }
  91.         else
  92.         {
  93.             koniecZ5M2= koniecZ5M1 + tabM2[myints[4]-1];
  94.         }
  95.  
  96.         if(koniecZ6M1 < koniecZ5M2)
  97.         {
  98.             koniecZ6M2 = koniecZ5M2 + tabM2[myints[5]-1];
  99.         }
  100.         else
  101.         {
  102.             koniecZ6M2= koniecZ6M1 + tabM2[myints[5]-1];
  103.         }
  104.  
  105.         czas = koniecZ6M2;
  106.  
  107.         if( czas < minCzas) {
  108.             minCzas = czas;
  109.             indeks = i;
  110.         }
  111.  
  112.  
  113.         // Koniec wyliczenia
  114.  
  115.  
  116.         std::cout <<i<<":"<<' '<< myints[0] << ' ' << myints[1] << ' ' << myints[2] << ' ' << myints[3] << ' ' << myints[4] << ' ' << myints[5] <<" "<< czas <<'\n';
  117.         std::cout << "Czasy koncow zadan w kolejnosci wykonywania na maszynie 1: "<< koniecZ1M1 <<' '<<koniecZ2M1<<' '<<koniecZ3M1<<' '<<koniecZ4M1<<' ' <<koniecZ5M1<<' '<<koniecZ6M1<<'\n';
  118.         std::cout << "Czasy koncow zadan w kolejnosci wykonywania na maszynie 2: "<< koniecZ1M2 <<' '<<koniecZ2M2<<' '<<koniecZ3M2<<' '<<koniecZ4M2<<' ' <<koniecZ5M2<<' '<<koniecZ6M2<<'\n';
  119.  
  120.     } while ( std::next_permutation(myints,myints+6) );
  121.  
  122.     std::cout << "After loop: " << myints[0] << ' ' << myints[1] << ' ' << myints[2] << ' ' << myints[3] << ' ' << myints[4] << ' ' << myints[5] << '\n';
  123.     std::cout << "Minimalny czas: " << minCzas << " Indeks: " << indeks<< "\n";
  124.  
  125.     return 0;
  126. }
  127. //Edit & Run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement