Advertisement
AdrianMadajewski

2014_przykladowa

Feb 1st, 2019
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <fstream>
  4. #include <vector>
  5. #include <climits>
  6.  
  7. int pozytywna_seria_dluzsza_3(std::vector<int> &tab)
  8. {
  9.     int wynik = 0;
  10.     int dlugosc = 1;
  11.     for (int i = 0; i < tab.size() - 1; i++)
  12.     {
  13.         if (tab[i] < tab[i + 1])
  14.             dlugosc++;
  15.         else
  16.         {
  17.             if (dlugosc > 3)
  18.                 wynik++;
  19.             dlugosc = 1;
  20.         }
  21.     }
  22.     return wynik;
  23. }
  24.  
  25. void minmax(std::vector<int> &tab, int &MIN, int &MAX, int &dmin, int &dmax)
  26. {
  27.     for (int i = 0; i < tab.size(); i += 2)
  28.     {
  29.         if (tab[i] < tab[i + 1])
  30.         {
  31.             if (tab[i] < MIN)
  32.             {
  33.                 MIN = tab[i];
  34.                 dmin = i + 1;
  35.             }
  36.                
  37.             if (tab[i + 1] > MAX)
  38.             {
  39.                 MAX = tab[i + 1];
  40.                 dmax = i + 2;
  41.             }
  42.                
  43.         }
  44.         if (tab[i] > tab[i + 1])
  45.         {
  46.             if (tab[i] > MAX)
  47.             {
  48.                 MAX = tab[i];
  49.                 dmax = i + 1;
  50.             }
  51.                
  52.             if (tab[i + 1] < MIN)
  53.             {
  54.                 MIN = tab[i + 1];
  55.                 dmin = i + 2;
  56.             }  
  57.         }
  58.     }
  59. }
  60.  
  61. int seria(std::vector<int> &tab, int &koniec)
  62. {
  63.     int maxseria = INT_MIN;
  64.     int dlugosc = 1;
  65.    
  66.     for (int i = 0; i < tab.size() - 1; i++)
  67.     {
  68.         if (tab[i + 1] > tab[i])
  69.             dlugosc++;
  70.         else dlugosc = 1;
  71.  
  72.         if (dlugosc > maxseria)
  73.         {
  74.             maxseria = dlugosc;
  75.             koniec = i + 1;
  76.         }
  77.     }
  78.     return maxseria;
  79. }
  80.  
  81. int main()
  82. {
  83.     std::ifstream dane("dziennik.txt");
  84.     const int N = 310;
  85.  
  86.     std::vector<int> tab;
  87.     int tmp;
  88.  
  89.     for (int i = 0; i < N; i++)
  90.     {
  91.         dane >> tmp;
  92.         tab.emplace_back(tmp);
  93.     }
  94.  
  95.     int MIN = INT_MAX;
  96.     int MAX = INT_MIN;
  97.     int dmin = 0;
  98.     int dmax = 0;
  99.  
  100.     std::cout << pozytywna_seria_dluzsza_3(tab) << std::endl;
  101.     minmax(tab, MIN, MAX, dmin, dmax);
  102.  
  103.     int koniec = 0;
  104.     int maxseria = seria(tab, koniec);
  105.     int popraw = tab[koniec] - tab[koniec - maxseria + 1];
  106.  
  107.     std::cout << "MAX: " << MAX << " -> d: " << dmax << std::endl;
  108.     std::cout << "MIN: " << MIN << " -> d: " << dmin << std::endl;
  109.     std::cout << maxseria << " " << popraw << std::endl;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement