Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define fi first
  6. #define se second
  7. #define pb push_back
  8. #define all(x) (x).begin(), (x).end()
  9. #define rall(x) (x).rbegin(), (x).rend()
  10. #define dump(x) cerr << #x " = " << (x) << '\n'
  11. #define sz(x) ((int)(x).size())
  12. #define endl '\n'
  13.  
  14. #ifdef _DEBUG27_
  15.     //#define STRESS 1
  16. #endif
  17.  
  18. typedef long long llong;
  19.  
  20. const int INF = 2e9;
  21. const llong LINF = 2e18;
  22.  
  23. void inv(bool e);
  24. template<typename T> T sign(T a);
  25. template<typename T> void die(T &a);
  26. template<typename T> void umax(T &a, T b);
  27. template<typename T> void umin(T &a, T b);
  28.  
  29. bool brute, alter;
  30. int cnt_tests = 1;
  31.  
  32. // testing fake / road to div1
  33.  
  34. // Code below
  35.  
  36. int n, k;
  37.  
  38. vector<int> arr;
  39.  
  40. void inp() {
  41.     cin >> n >> k;
  42.     arr.resize(n);
  43.     for (int i = 0; i < n; i++) {
  44.         cin >> arr[i];
  45.     }
  46. }
  47.  
  48. const int N = 2e5, SQRT = sqrt(N) + 2;
  49.  
  50. int decmp[SQRT], bsize;
  51.  
  52. int num(int x) {
  53.     return x / bsize;
  54. }
  55.  
  56. int get(int l, int r) {
  57.     int ans = INF;
  58.     for (int i = l; i <= r; i++) {
  59.         if (i == bsize * num(i) && i + bsize < r) {
  60.             umin(ans, decmp[num(i)]);
  61.             i += bsize - 1;
  62.         } else {
  63.             umin(ans, arr[i]);
  64.         }
  65.     }
  66.     return ans;
  67. }
  68.  
  69. void solve() {
  70.     bsize = 1 + sqrt((double) n);
  71.     for (int i = 0; i < SQRT; i++) {
  72.         decmp[i] = INF;
  73.     }
  74.     for (int i = 0; i < n; i++) {
  75.         umin(decmp[num(i)], arr[i]);
  76.     }
  77.     for (int i = 0; i + k - 1 < n; i++) {
  78.         cout << get(i, i + k - 1) << ' ';
  79.     }
  80. }
  81.  
  82. void stress() {
  83.  
  84. }
  85.  
  86. void naive() {
  87.  
  88. }
  89.  
  90. void run();
  91. int main() {
  92.     #ifdef _DEBUG27_
  93.         if (1)
  94.             freopen("input.txt", "r", stdin);
  95.     #else
  96.         ios_base::sync_with_stdio(false);
  97.         cin.tie(0);
  98.         cout.tie(0);
  99.         if (0) {
  100.             freopen("polygon.in", "r", stdin);
  101.             freopen("polygon.out", "w", stdout);
  102.         }
  103.     #endif
  104.     srand(time(0));
  105.     #ifdef STRESS
  106.         brute = true;
  107.     #else
  108.         brute = false;
  109.     #endif
  110.  
  111.     for (int i = 0; (i < cnt_tests); i++) {
  112.         run();
  113.     }
  114.     cerr << endl << "Time: " << clock() / 1000.0 << " ms";
  115.     return 0;
  116. }
  117.  
  118. void run() {
  119.     if (!brute) {
  120.         inp();
  121.     }
  122.     else {
  123.         stress();
  124.     }
  125.     solve();
  126.     cout << endl;
  127. }
  128.  
  129. template<typename T>
  130. void die(T &a) {
  131.     cout << a;
  132.     exit(0);
  133. }
  134.  
  135. template<typename T>
  136. T sign(T a) {
  137.     if (a == 0)
  138.         return 0;
  139.     if (a < 0)
  140.         return -1;
  141.     return 1;
  142. }
  143.  
  144. template<typename T>
  145. void umax(T &a, T b) {
  146.     if (b > a)
  147.         a = b;
  148. }
  149.  
  150. template<typename T>
  151. void umin(T &a, T b) {
  152.     if (b < a)
  153.         a = b;
  154. }
  155.  
  156. void inv(bool e) {
  157.     if (!e) {
  158.         vector<int> a;
  159.         a[-1] += 1;
  160.     }
  161. }
  162.  
  163. /** CLEARING BUFFER
  164.  
  165.     cout << VAL << flush;
  166.  
  167.     OR
  168.  
  169.     printf(VAL);
  170.     fflush(stdout);
  171. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement