Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.17 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class Uczen
  6. {
  7. public:
  8.     string kod;
  9.     float s;
  10.     int odleglosc;
  11.     int miesiac;
  12. };
  13.  
  14. bool porownanie_sdm(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  15. {
  16.     if (pierwszy->s < drugi->s)
  17.     {
  18.         return true;
  19.     }
  20.     else if (pierwszy->s > drugi->s)
  21.     {
  22.         return false;
  23.     }
  24.     else
  25.     {
  26.         if (pierwszy->odleglosc < drugi->odleglosc)
  27.         {
  28.             return true;
  29.         }
  30.         else if (pierwszy->odleglosc > drugi->odleglosc)
  31.         {
  32.             return false;
  33.         }
  34.         else
  35.         {
  36.             if (pierwszy->miesiac < drugi->miesiac)
  37.             {
  38.                 return true;
  39.             }
  40.             else if (pierwszy->miesiac > drugi->miesiac)
  41.             {
  42.                 return false;
  43.             }
  44.             else
  45.             {
  46.                 if (pozycjaPierwszy >pozycjaDrugi)
  47.                 {
  48.                     return true;
  49.                 }
  50.                 else
  51.                 {
  52.                     return false;
  53.                 }
  54.             }
  55.         }
  56.     }
  57. }
  58.  
  59. bool porownanie_smd(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  60. {
  61.     if (pierwszy->s < drugi->s)
  62.     {
  63.         return true;
  64.     }
  65.     else if (pierwszy->s > drugi->s)
  66.     {
  67.         return false;
  68.     }
  69.     else
  70.     {
  71.         if (pierwszy->miesiac < drugi->miesiac)
  72.         {
  73.             return true;
  74.         }
  75.         else if (pierwszy->miesiac > drugi->miesiac)
  76.         {
  77.             return false;
  78.         }
  79.         else
  80.         {
  81.             if (pierwszy->odleglosc < drugi->odleglosc)
  82.             {
  83.                 return true;
  84.             }
  85.             else if (pierwszy->odleglosc > drugi->odleglosc)
  86.             {
  87.                 return false;
  88.             }
  89.             else
  90.             {
  91.                 if (pozycjaPierwszy >pozycjaDrugi)
  92.                 {
  93.                     return true;
  94.                 }
  95.                 else
  96.                 {
  97.                     return false;
  98.                 }
  99.             }
  100.         }
  101.     }
  102. }
  103.  
  104. bool porownanie_mds(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  105. {
  106.     if (pierwszy->miesiac < drugi->miesiac)
  107.     {
  108.         return true;
  109.     }
  110.     else if (pierwszy->miesiac > drugi->miesiac)
  111.     {
  112.         return false;
  113.     }
  114.     else
  115.     {
  116.         if (pierwszy->odleglosc < drugi->odleglosc)
  117.         {
  118.             return true;
  119.         }
  120.         else if (pierwszy->odleglosc > drugi->odleglosc)
  121.         {
  122.             return false;
  123.         }
  124.         else
  125.         {
  126.             if (pierwszy->s < drugi->s)
  127.             {
  128.                 return true;
  129.             }
  130.             else if (pierwszy->s > drugi->s)
  131.             {
  132.                 return false;
  133.             }
  134.             else
  135.             {
  136.                 if (pozycjaPierwszy>pozycjaDrugi)
  137.                 {
  138.                     return true;
  139.                 }
  140.                 else
  141.                 {
  142.                     return false;
  143.                 }
  144.             }
  145.         }
  146.     }
  147. }
  148.  
  149. bool porownanie_msd(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  150. {
  151.     if (pierwszy->miesiac < drugi->miesiac)
  152.     {
  153.         return true;
  154.     }
  155.     else if (pierwszy->miesiac > drugi->miesiac)
  156.     {
  157.         return false;
  158.     }
  159.     else
  160.     {
  161.         if (pierwszy->s < drugi->s)
  162.         {
  163.             return true;
  164.         }
  165.         else if (pierwszy->s > drugi->s)
  166.         {
  167.             return false;
  168.         }
  169.         else
  170.         {
  171.             if (pierwszy->odleglosc < drugi->odleglosc)
  172.             {
  173.                 return true;
  174.             }
  175.             else if (pierwszy->odleglosc > drugi->odleglosc)
  176.             {
  177.                 return false;
  178.             }
  179.             else
  180.             {
  181.                 if (pozycjaPierwszy> pozycjaDrugi)
  182.                 {
  183.                     return true;
  184.                 }
  185.                 else
  186.                 {
  187.                     return false;
  188.                 }
  189.             }
  190.         }
  191.     }
  192. }
  193.  
  194. bool porownanie_dms(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  195. {
  196.     if (pierwszy->odleglosc < drugi->odleglosc)
  197.     {
  198.         return true;
  199.     }
  200.     else if (pierwszy->odleglosc > drugi->odleglosc)
  201.     {
  202.         return false;
  203.     }
  204.     else
  205.     {
  206.         if (pierwszy->miesiac < drugi->miesiac)
  207.         {
  208.             return true;
  209.         }
  210.         else if (pierwszy->miesiac > drugi->miesiac)
  211.         {
  212.             return false;
  213.         }
  214.         else
  215.         {
  216.             if (pierwszy->s < drugi->s)
  217.             {
  218.                 return true;
  219.             }
  220.             else if (pierwszy->s > drugi->s)
  221.             {
  222.                 return false;
  223.             }
  224.             else
  225.             {
  226.                 if (pozycjaPierwszy>pozycjaDrugi)
  227.                 {
  228.                     return true;
  229.                 }
  230.                 else
  231.                 {
  232.                     return false;
  233.                 }
  234.             }
  235.         }
  236.     }
  237. }
  238.  
  239. bool porownanie_dsm(Uczen *pierwszy, Uczen *drugi, int pozycjaPierwszy, int pozycjaDrugi)
  240. {
  241.     if (pierwszy->odleglosc < drugi->odleglosc)
  242.     {
  243.         return true;
  244.     }
  245.     else if (pierwszy->odleglosc > drugi->odleglosc)
  246.     {
  247.         return false;
  248.     }
  249.     else
  250.     {
  251.         if (pierwszy->s < drugi->s)
  252.         {
  253.             return true;
  254.         }
  255.         else if (pierwszy->s > drugi->s)
  256.         {
  257.             return false;
  258.         }
  259.         else
  260.         {
  261.             if (pierwszy->miesiac < drugi->miesiac)
  262.             {
  263.                 return true;
  264.             }
  265.             else if (pierwszy->miesiac > drugi->miesiac)
  266.             {
  267.                 return false;
  268.             }
  269.             else
  270.             {
  271.                 if (pozycjaPierwszy >pozycjaDrugi)
  272.                 {
  273.                     return true;
  274.                 }
  275.                 else
  276.                 {
  277.                     return false;
  278.                 }
  279.             }
  280.         }
  281.     }
  282. }
  283. int main()
  284. {
  285.     int n;
  286.     cin >> n;
  287.  
  288.     char priorytety[6];
  289.     cin >>priorytety[0];
  290.     cin >> priorytety[2];
  291.     cin >> priorytety[4];
  292.     priorytety[1] = ' ';
  293.     priorytety[3] = ' ';
  294.     priorytety[5] = '\0';
  295.     string opcja(priorytety);
  296.  
  297.     Uczen **chlopcy=new Uczen*[n];
  298.     Uczen **dziewczynki = new Uczen*[n];
  299.  
  300.     bool(*wskaznik) (Uczen*, Uczen*,int, int);
  301.    
  302.     if (opcja == "s d m")
  303.     {
  304.         wskaznik = porownanie_sdm;
  305.     }
  306.     else if (opcja == "s m d")
  307.     {
  308.         wskaznik = porownanie_smd;
  309.     }
  310.     else if (opcja == "m d s")
  311.     {
  312.         wskaznik = porownanie_mds;
  313.     }
  314.     else if (opcja == "m s d")
  315.     {
  316.         wskaznik = porownanie_msd;
  317.     }
  318.     else if (opcja == "d m s")
  319.     {
  320.         wskaznik = porownanie_dms;
  321.     }
  322.     else if(opcja =="d s m")
  323.     {
  324.         wskaznik = porownanie_dsm;
  325.     }
  326.  
  327.     dziewczynki[0] = new Uczen();
  328.     cin >> dziewczynki[0]->kod;
  329.     cin >> dziewczynki[0]->s;
  330.     cin >> dziewczynki[0]->odleglosc;
  331.     cin >> dziewczynki[0]->miesiac;
  332.  
  333.     chlopcy[0] = new Uczen();
  334.     cin >> chlopcy[0]->kod;
  335.     cin >> chlopcy[0]->s;
  336.     cin >> chlopcy[0]->odleglosc;
  337.     cin >> chlopcy[0]->miesiac;
  338.  
  339.     for (int i = 1; i < n; i++)
  340.     {
  341.         dziewczynki[i] = new Uczen();
  342.         cin >> dziewczynki[i]->kod;
  343.         cin >> dziewczynki[i]->s;
  344.         cin >> dziewczynki[i]->odleglosc;
  345.         cin >> dziewczynki[i]->miesiac;
  346.  
  347.         chlopcy[i] = new Uczen();
  348.         cin >> chlopcy[i]->kod;
  349.         cin >> chlopcy[i]->s;
  350.         cin >> chlopcy[i]->odleglosc;
  351.         cin >> chlopcy[i]->miesiac;
  352.  
  353.  
  354.                 Uczen *temp;
  355.                 temp = chlopcy[i];
  356.                 for (int j = i - 1; (j >= 0) && (wskaznik(temp, chlopcy[j],j+1,j) == true); j--)
  357.                 {
  358.                     chlopcy[j + 1] = chlopcy[j];
  359.                     chlopcy[j] = temp;
  360.                 }
  361.            
  362.  
  363.  
  364.                 Uczen *temp2;
  365.                 temp2 = dziewczynki[i];
  366.                 for (int j = i - 1; (j >= 0) && (wskaznik(temp2, dziewczynki[j], j + 1, j) == true); j--)
  367.                 {
  368.                     dziewczynki[j + 1] = dziewczynki[j];
  369.                     dziewczynki[j] = temp2;
  370.                 }
  371.        
  372.     }
  373.     for (int i = n-1; i >= 0; i--)
  374.     {
  375.         cout << dziewczynki[i]->kod << ' ' << chlopcy[i]->kod << ' ';
  376.     }
  377.     delete dziewczynki;
  378.     delete chlopcy;
  379.     return 0;
  380. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement