Advertisement
Glenpl

Untitled

Jun 21st, 2015
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <utility>
  6.  
  7. std::set<int> suma_zbiorow(std::set<int> setA, std::set<int> setB)
  8. {
  9.     std::set<int> setC;
  10.  
  11.     for( int x : setA )
  12.         setC.insert(x);
  13.     for( int x : setB )
  14.         setC.insert(x);
  15.  
  16.     return setC;
  17. }
  18.  
  19. std::multiset<int> suma_zbiorow(std::multiset<int> setA, std::multiset<int> setB)
  20. {
  21.     std::set<int> setC;
  22.  
  23.     for( int x : setA )
  24.         setC.insert(x);
  25.     for( int x : setB )
  26.         setC.insert(x);
  27.  
  28.     std::multiset<int> multisetWynikowy;
  29.  
  30.     for(auto x : setC)
  31.         multisetWynikowy.insert(x);
  32.  
  33.     return multisetWynikowy;
  34. }
  35.  
  36. std::multiset<int> suma_multizbiorow(std::multiset<int> multisetA, std::multiset<int> multisetB)
  37. {
  38.     std::multiset<int> multisetC;
  39.  
  40.     for( int x : multisetA )
  41.         multisetC.insert(x);
  42.     for( int x : multisetB )
  43.         multisetC.insert(x);
  44.  
  45.     return multisetC;
  46. }
  47.  
  48. std::multiset<int> obciecie_multizbioru(std::multiset<int> multisetE, int rozmiar)
  49. {
  50.     std::multiset<int> multisetWynikowy;
  51.     auto ptr = multisetE.begin();
  52.  
  53.     for(int i = 0; i < rozmiar; i++)
  54.     {
  55.         multisetWynikowy.insert( *ptr );
  56.         ptr++;
  57.     }
  58.  
  59.     return multisetWynikowy;
  60. }
  61.  
  62. int suma_elementow_zbioru(std::multiset<int> multisetA)
  63. {
  64.     int suma = 0;
  65.    
  66.     for(int x : multisetA)
  67.         suma += x;
  68.    
  69.     return suma;
  70. }
  71.  
  72. std::multiset<int> suma_alternatywna_multizbiorow(std::multiset<int> multisetE, std::multiset<int> multisetF, std::multiset<int> multisetG, int rozmiar)
  73. {
  74.     std::multiset<int> multisetRoboczy;
  75.     std::multiset<int> multisetWynikowy;
  76.    
  77.     if( suma_elementow_zbioru(multisetE) % 2 == 0 )
  78.         multisetRoboczy = suma_multizbiorow( multisetE, multisetF );
  79.     else
  80.         multisetRoboczy = suma_multizbiorow( multisetE, multisetG );
  81.        
  82.     multisetWynikowy = obciecie_multizbioru( multisetRoboczy, rozmiar );
  83.    
  84.     return multisetWynikowy;
  85. }
  86.  
  87. int main()
  88. {
  89.     std::multiset<int> x = {10, 15, 55, 44, 88, 44, 5, 5, 10, 15};
  90.  
  91.     for(int i : x)
  92.         std::cout << i << " ";
  93.     std::cout << "\n\n";
  94.  
  95.     obciecie_multizbioru(x, 5);
  96.  
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement