Vserosbuybuy

Untitled

Oct 22nd, 2020
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <algorithm>
  2. #include <complex>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <deque>
  6. #include <iostream>
  7. #include <map>
  8. #include <math.h>
  9. #include <queue>
  10. #include <random>
  11. #include <set>
  12. #include <string>
  13. #include <unordered_map>
  14. #include <unordered_set>
  15. #include <vector>
  16.  
  17. using namespace std;
  18.  
  19. typedef long long ll;
  20. typedef double ld;
  21. typedef complex<ld> cp;
  22.  
  23. const ld eps = 1e-9;
  24. std::random_device randD;
  25. std::mt19937 gen(randD());
  26. const ld pi = 3.14159265359;
  27.  
  28. vector<int> v;
  29. int pr[100010];
  30. int suf[100010];
  31. int s[100010];
  32.  
  33. int main() {
  34. #ifdef SYSTEM
  35.     freopen("input.txt", "r", stdin);
  36.     freopen("output.txt", "w", stdout);
  37. #endif
  38.     ios_base::sync_with_stdio(false);
  39.     cin.tie(0);
  40.     int n, k, a;
  41.     cin >> n >> k;
  42.     for (int i = 0; i < n; ++i) {
  43.         cin >> a;
  44.         v.push_back(a);
  45.     }
  46.     int minn = 1e9, maxx = -1e9;
  47.     for (int i = 0; i < n; ++i) {
  48.         minn = min(minn, v[i]);
  49.         maxx = max(maxx, v[i]);
  50.     }
  51.     if (k >= 3) {
  52.         cout << maxx;
  53.         return 0;
  54.     }
  55.     if (k == 1) {
  56.         cout << minn;
  57.         return 0;
  58.     }
  59.     pr[0] = 1e9;
  60.     suf[n] = 1e9;
  61.     for (int i = 1; i <= n; ++i) {
  62.         pr[i] = min(pr[i - 1], v[i - 1]);
  63.     }
  64.     s[0] = 0;
  65.     for (int i = 1; i <= n; ++i) {
  66.         s[i] = s[i - 1] + v[i];
  67.     }
  68.     // s[j + 1] - s[i] сумма с i по j включительно
  69.     for (int i = n - 1; i >= 0; --i) {
  70.         suf[i] = min(suf[i + 1], v[i]);
  71.     }
  72.     int ans = -1e9;
  73.     for (int i = 0; i < n - 1; ++i) {
  74.         ans = max(ans, max(pr[i + 1], suf[i + 1]));
  75.     }
  76.     cout << ans;
  77.     return 0;
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment